首页 > 解决方案 > 识别在c#上单击了哪个多边形

问题描述

我在地图上添加多个多边形并尝试识别单击了哪个多边形。C# 已经可以确定是否单击了多边形,但我需要确定单击了哪个多边形。我已经尝试了很多变化,但目前我在底部有错误:

{
     gMapControl1.MapProvider = GMapProviders.GoogleMap;
     gMapControl1.Position = new PointLatLng(52.2659416, 10.5267296);

     GMapOverlay polygons = new GMapOverlay("polygons");
     List<PointLatLng> points = new List<PointLatLng>();
     points.Add(new PointLatLng(52.2659416, 10.5267296));
     points.Add(new PointLatLng(62.2659416, 10.5267296));
     points.Add(new PointLatLng(62.2659416, 20.5267296));
     points.Add(new PointLatLng(52.2659416, 20.5267296));
     GMapPolygon polygon = new GMapPolygon(points, "test");
     polygons.Polygons.Add(polygon);
     gMapControl1.Overlays.Add(polygons);
}

private void gmap_OnPolygonClick(GMapPolygon item, MouseEventArgs e)
{
     Console.WriteLine(String.Format("Polygon {0} with tag {1} was clicked",
     item.Name, item.Tag));
}

错误 CS0104 'MouseEventArgs' 是 'System.Windows.Forms.MouseEventArgs' 和 'System.Windows.Input.MouseEventArgs' 之间的模糊引用

标签: c#google-maps

解决方案


您必须将多边形的 IsHitTestVisible 指定为 true:

polygon.IsHitTestVisible = true;

在这里找到它: GMap - 无法检测到单击多边形


推荐阅读