GMap.NET 在 C# 中连接标记

问题描述

我正在编写以下代码,该代码通过单击鼠标右键在地图上放置了几个标记(可以是 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...