GMap.net启用双击缩放

时间:2018-04-17 08:11:12

标签: wpf click double zoom gmap.net

我正在使用Gmap.net进行wpf c#项目。我添加了地图,我可以使用鼠标滚轮进行缩放。这些是我加载的设置

GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache;

mapView.MapProvider = GMap.NET.MapProviders.GoogleSatelliteMapProvider.Instance;                   // choose your provider here

mapView.ShowCenter = false;
mapView.MinZoom = 4;                                                                            // whole world zoom
mapView.MaxZoom = 20;  
mapView.Zoom = 1;      
mapView.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionWithoutCenter;                // lets the map use the mousewheel to zoom
mapView.CanDragMap = true;                                                                      // lets the user drag the map       
mapView.DragButton = MouseButton.Left;                                                          // lets the user drag the map with the left mouse button
mapView.IgnoreMarkerOnMouseWheel = true;

但我不能像谷歌地图样式一样左键双击缩放到光标点。它有什么简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以处理地图 MouseDoubleClick 事件并捕获点击的点坐标并将地图位置设置为该点。

如果 MouseDoubleClick 事件无法正常工作,请尝试处理 MouseClick 事件,并检查Clicks属性是否等于2将地图居中并缩放。

当您使用右鼠标按钮双击地图时,我添加了一个额外的选项,通过减去缩放值减1来缩小

  

GMapControl1.Zoom - = 1

以下是该解决方案的一个示例:(GMap.Net WinForms)

    Private void GMapControl1_MouseClick(Object sender, MouseEventArgs e)
{
    //   Capture the Double Click event when 2 clicks occured
    If (e.Clicks.Equals(2))
    {
        PointLatLng pt = GMapControl1.FromLocalToLatLng(e.X, e.Y);

        GMapControl1.Position = pt;

        If (e.Button.Equals(MouseButtons.Left))
        {
            // Zoom in with left mouse button
            GMapControl1.Zoom += 1;
        }
        ElseIf (e.Button.Equals(MouseButtons.Right))
        {
            // Zoom out with right mouse button
            GMapControl1.Zoom -= 1;
        }
    }
}