在 gmap 中心添加地图标记?
Add map marker at gmap center?
我正在摆弄 GMap.NET。我的表单上有一个 gmap.net 地图控件。地图中间有一个红色的 x(或者加号,如果你愿意的话)。我添加了一种方法,可以在我点击地图的任何地方放置一个标记。然而,客户宁愿在表单上有一个用户将单击的 "pushpin" 按钮,并且标记将添加到红色 X 所在的位置(看起来总是地图控件的中心)。地图是可拖动和可缩放的,因此标记将添加到当时红色 x 所在的位置。
现在,当我的程序添加标记时,它会从 FromLocalToLatLng
gmap 方法转换纬度和经度:
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);
}
不过,在这种情况下,我想知道是否有办法在地图中心添加标记?
我明白了。您可以使用以下代码获取地图的中心:
var center = gmap.Position;
一旦我有了中心,我需要做的就是在那个位置添加一个标记,就像这样:
var marker2 = new GMarkerGoogle(new
PointLatLng(center.Lat, center.Lng),
GMarkerGoogleType.green_pushpin)
{
ToolTipText = "Kevin Jennings",
ToolTipMode = MarkerTooltipMode.OnMouseOver
};
你需要用到这个
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;
}
我正在摆弄 GMap.NET。我的表单上有一个 gmap.net 地图控件。地图中间有一个红色的 x(或者加号,如果你愿意的话)。我添加了一种方法,可以在我点击地图的任何地方放置一个标记。然而,客户宁愿在表单上有一个用户将单击的 "pushpin" 按钮,并且标记将添加到红色 X 所在的位置(看起来总是地图控件的中心)。地图是可拖动和可缩放的,因此标记将添加到当时红色 x 所在的位置。
现在,当我的程序添加标记时,它会从 FromLocalToLatLng
gmap 方法转换纬度和经度:
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);
}
不过,在这种情况下,我想知道是否有办法在地图中心添加标记?
我明白了。您可以使用以下代码获取地图的中心:
var center = gmap.Position;
一旦我有了中心,我需要做的就是在那个位置添加一个标记,就像这样:
var marker2 = new GMarkerGoogle(new
PointLatLng(center.Lat, center.Lng),
GMarkerGoogleType.green_pushpin)
{
ToolTipText = "Kevin Jennings",
ToolTipMode = MarkerTooltipMode.OnMouseOver
};
你需要用到这个
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;
}