【问题标题】:GMap.NET connect Markers in C#GMap.NET 在 C# 中连接标记
【发布时间】:2021-04-24 00:47:20
【问题描述】:

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

【问题讨论】:

    标签: c# google-maps polygon marker gmap.net


    【解决方案1】:

    如果你只有一个叠加层,你可以找到标记的坐标如下:

    map.Overlays(0).markers(i).position
    

    位置是 PointLatLng 类型。

    如果您需要将 lat 和 lng 分开,您可以使用

    map.Overlays(0).markers(i).position.Lat
    map.Overlays(0).markers(i).position.Lng
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多