我正在摆弄GMap.NET。我的表单上有一个gmap.net地图控件。在地图中间有一个红色的x(或加号,如果你愿意的话)。我添加了一个方法,只要我点击地图就会放置标记。但是,客户宁愿拥有一个"图钉"用户将单击的窗体上的按钮,标记将添加到红色X所在的位置(它似乎始终是地图控件的中心)。地图是可拖动和可缩放的,因此标记将添加到当时红色x所在的任何位置。
现在,当我的程序添加标记时,它会从FromLocalToLatLng
gmap方法转换lat和lng:
private void gmap_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left) return;
var lat = gmap.FromLocalToLatLng(e.X, e.Y).Lat;
var lng = gmap.FromLocalToLatLng(e.X, e.Y).Lng;
var markerOverlay = new GMapOverlay("markers");
var marker = new GMarkerGoogle(new
PointLatLng(lat, lng),
GMarkerGoogleType.green_pushpin)
{
ToolTipText = "Kevin Jennings",
ToolTipMode = MarkerTooltipMode.OnMouseOver
};
gmap.Overlays.Add(markerOverlay);
markerOverlay.Markers.Add(marker);
}
在这种情况下,我想知道是否可以在地图中心添加标记?
答案 0 :(得分:0)
我明白了。您可以使用以下代码获取地图的中心:
var center = gmap.Position;
有了中心后,我需要做的就是在那个位置添加一个标记,如下所示:
var marker2 = new GMarkerGoogle(new
PointLatLng(center.Lat, center.Lng),
GMarkerGoogleType.green_pushpin)
{
ToolTipText = "Kevin Jennings",
ToolTipMode = MarkerTooltipMode.OnMouseOver
};
答案 1 :(得分:0)
你需要使用这个
map.Zoom = 10;
map.Zoom = 9;
并且您的标记将位于正确的方向上.. 完整的代码
var lat = mapa.FromLocalToLatLng(e.X, e.Y).Lat;
var lng = mapa.FromLocalToLatLng(e.X, e.Y).Lng;
MessageBox.Show(lat + " long :" + lng);
var markerOverlay = new GMapOverlay("markers");
var marker = new GMarkerGoogle(new
PointLatLng(lat, lng),
GMarkerGoogleType.green_pushpin)
{
ToolTipText = "Ubicacion depto",
ToolTipMode = MarkerTooltipMode.OnMouseOver
};
markerOverlay.Markers.Add(marker);
map.Overlays.Add(markerOverlay);
map.Zoom = 10;
map.Zoom = 9;
}