GMap - 无法检测到点击多边形
GMap - cannot detect clicking on polygon
IsMouseOverMarker
属性 检测到点击标记就好了,但是当尝试使用 IsMouseOverPolygon
属性 of GMap
控件来检测用户是否点击多边形线 - 它似乎不起作用。
注意:GMap
控件的 PolygonEnabled
属性 设置为 True。
OnPolygonClick
事件甚至没有触发:
private void gMap_OnPolygonClick(GMapPolygon item, MouseEventArgs e) {
double pLat = item.From.Value.Lat;
}
地图 Click
事件确实触发,但“IsMouseOverPolygon”从未获得真值:
private void gMap_Click(object sender, EventArgs e) {
if (gMap.IsMouseOverMarker) {
MessageBox.Show("Clicked on marker and it works!");
}
if (gMap.IsMouseOverPolygon) {
MessageBox.Show("clicked on line - never works");
}
}
我想知道我添加多边形的方式是否有问题,或者是因为在我的情况下它只是线:
GMapOverlay polyOverlay = new GMapOverlay("polygons");
gMap.Overlays.Add(polyOverlay);
List<PointLatLng> points = new List<PointLatLng>();
points.Add(start);
points.Add(end);
polygon = new GMapPolygon(points, "mypolygon");
polygon.Stroke = new Pen(Color.Blue, 5);
polyOverlay.Polygons.Add(polygon);
所以,问题是:我应该如何检测鼠标在这些行上的点击?
我可以在代码中看到两个问题。首先,您需要将多边形明确定义为 HitTestVisible
:
polygon.IsHitTestVisible = true;
其次,要设置一个多边形,请至少添加三个未对齐的点并实际生成一个区域。我发现点击只会在实际区域上被注意到,理论上多边形可以由两个点组成。
根据上面的提示检查 gMap.IsMouseOverPolygon
应该 return true
然后。
IsMouseOverMarker
属性 检测到点击标记就好了,但是当尝试使用 IsMouseOverPolygon
属性 of GMap
控件来检测用户是否点击多边形线 - 它似乎不起作用。
注意:GMap
控件的 PolygonEnabled
属性 设置为 True。
OnPolygonClick
事件甚至没有触发:
private void gMap_OnPolygonClick(GMapPolygon item, MouseEventArgs e) {
double pLat = item.From.Value.Lat;
}
地图 Click
事件确实触发,但“IsMouseOverPolygon”从未获得真值:
private void gMap_Click(object sender, EventArgs e) {
if (gMap.IsMouseOverMarker) {
MessageBox.Show("Clicked on marker and it works!");
}
if (gMap.IsMouseOverPolygon) {
MessageBox.Show("clicked on line - never works");
}
}
我想知道我添加多边形的方式是否有问题,或者是因为在我的情况下它只是线:
GMapOverlay polyOverlay = new GMapOverlay("polygons");
gMap.Overlays.Add(polyOverlay);
List<PointLatLng> points = new List<PointLatLng>();
points.Add(start);
points.Add(end);
polygon = new GMapPolygon(points, "mypolygon");
polygon.Stroke = new Pen(Color.Blue, 5);
polyOverlay.Polygons.Add(polygon);
所以,问题是:我应该如何检测鼠标在这些行上的点击?
我可以在代码中看到两个问题。首先,您需要将多边形明确定义为 HitTestVisible
:
polygon.IsHitTestVisible = true;
其次,要设置一个多边形,请至少添加三个未对齐的点并实际生成一个区域。我发现点击只会在实际区域上被注意到,理论上多边形可以由两个点组成。
根据上面的提示检查 gMap.IsMouseOverPolygon
应该 return true
然后。