GMap Net自定义标记OnMarkerClick不正确

时间:2019-02-11 15:43:10

标签: gmap.net

我使用点列表和绘制/填充多边形函数创建了一个自定义GMapMarker子类,但是我发现“ OnMarkerClick”检测无法准确检测到新的多边形形状。我的用户单击了整个标记,在某些地方,他们显然单击了正确的彩色位置,但是它仅在某些部分上注册。也可以单击关闭多边形的部分,以选择标记。我什至更改了标记的形状,使其成为非常简单的正方形,这也是有问题的。我会说只有25%的标记是可点击的。

是否需要在我的代码中添加一些额外内容,以使“ OnMarkerClick”行为具有预期的效果?

这是我要生成正方形的点的列表:

static readonly Point[] Arrow = new Point[] { new Point(-15, 0), new Point(15, 0), new Point(15, 15), new Point(-15, 15) };

以下是绘制形状的“ OnRender”部分:

    public override void OnRender(Graphics g)
    {
        {
            g.TranslateTransform(ToolTipPosition.X, ToolTipPosition.Y);
            var c = g.BeginContainer();
            {
                //Testing without rotation
                //g.RotateTransform(Bearing - Overlay.Control.Bearing);
                g.ScaleTransform(Scale, Scale);
                g.FillPolygon(Fill, Arrow);
                g.DrawPolygon(pen, Arrow);
            }
            g.EndContainer(c);
            g.TranslateTransform(-ToolTipPosition.X, -ToolTipPosition.Y);

            if(caption != "")
            {
                var stringSize = g.MeasureString(caption, font);
                var localPoint = new PointF(LocalPosition.X - stringSize.Width / 2, LocalPosition.Y + stringSize.Height + 10);
                g.DrawString(caption, font, textFill, localPoint);
            }
        }
    }

我通常实例化自定义的“箭头”对象(尽管现在是正方形),并将其添加到标记叠加层的标记列表中:

        Demo.WindowsForms.CustomMarkers.GMarkerArrow marker = new Demo.WindowsForms.CustomMarkers.GMarkerArrow(new GMap.NET.PointLatLng(lat, longitude));
        markersOverlay.Markers.Add(marker);

0 个答案:

没有答案