我正在使用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;
但我不能像谷歌地图样式一样左键双击缩放到光标点。它有什么简单的方法吗?
答案 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;
}
}
}