问题描述
我正在编写以下代码,该代码通过单击鼠标右键在地图上放置了几个标记(可以是 3-20 ...)并且工作正常。 单击单独的按钮后,我想将它们与多边形连接起来。
我想我必须从 0 循环到“markers.Markers.Count”,但是如何访问标记的纬度/经度位置?我到处寻找,但没有找到解决方案。 :-(请帮忙!谢谢! 此代码工作正常:
private void map_MouseClick(object sender,MouseEventArgs e) //add NEW markers
{
if (e.Button == MouseButtons.Right)
{
var position = map.FromLocalToLatLng(e.X,e.Y);
var marker = new GMarkerGoogle(position,GMarkerGoogleType.blue);
map.Overlays.Add(markers);
markers.Markers.Add(marker);
}
}
这段代码是挑战,将在按钮点击事件中出现: 用地图上已经存在的标记的纬度/经度替换以下固定坐标:
List<PointLatLng> points = new List<PointLatLng>();
for (int i = 0; i < markers.Markers.Count-1; i++)
{
// Get the Lat/Long from the list of the markers -> X & Y ***@@@ How to do this ??? @@@***
// replace here the fix coordinates with X & Y:
// points.Add(new PointLatLng(18.459806,57.2874577));
}
//Populate polygon (just for info):
GMappolygon polygon = new GMappolygon(points,"My polygon");
polygon.Fill = new SolidBrush(Color.FromArgb(50,Color.Red));
polygon.stroke = new Pen(Color.Red,1);
polygons.polygons.Add(polygon)
解决方法
如果您只有一个叠加层,您可以按如下方式找到标记的坐标:
map.Overlays(0).markers(i).position
位置的类型为 PointLatLng。
如果您需要将 lat 和 lng 分开,您可以使用
map.Overlays(0).markers(i).position.Lat
map.Overlays(0).markers(i).position.Lng