Gmap.net可以';t使用C#winform显示多个标记
我想在地图上显示多个标记,但似乎不行,代码如下: 按钮1\单击显示位置,按钮2\单击显示标记! 有人给我指示吗?谢谢Gmap.net可以';t使用C#winform显示多个标记,c#,winforms,gmap.net,C#,Winforms,Gmap.net,我想在地图上显示多个标记,但似乎不行,代码如下: 按钮1\单击显示位置,按钮2\单击显示标记! 有人给我指示吗?谢谢 private void button1_Click(object sender, EventArgs e) { gmap.DragButton = MouseButtons.Left; gmap.MapProvider = GMapProviders.GoogleMap; gmap.Position = new PointLatLng(25.037
private void button1_Click(object sender, EventArgs e)
{
gmap.DragButton = MouseButtons.Left;
gmap.MapProvider = GMapProviders.GoogleMap;
gmap.Position = new PointLatLng(25.037531, 121.5639969);
gmap.MinZoom = 5;
gmap.MaxZoom = 100;
gmap.ShowCenter = false;
gmap.Zoom = 15;
}
private void button2_Click(object sender, EventArgs e)
{
Random r = new Random();
var marker = new GMarkerGoogle(new PointLatLng(r.Next(25, 500), 121), GMarkerGoogleType.green);
var marker1 = new GMarkerGoogle(new PointLatLng(r.Next(25, 500), 121), GMarkerGoogleType.pink);
var marker2 = new GMarkerGoogle(new PointLatLng(r.Next(25, 500), 121), GMarkerGoogleType.blue);
var marker3 = new GMarkerGoogle(new PointLatLng(r.Next(25, 500), 121), GMarkerGoogleType.yellow);
marker.IsVisible = true; marker1.IsVisible = true; marker2.IsVisible = true; marker3.IsVisible = true;
gMapOverlay.Markers.Add(marker);
gMapOverlay.Markers.Add(marker1);
gMapOverlay.Markers.Add(marker2);
gMapOverlay.Markers.Add(marker3);
gmap.Overlays.Add(gMapOverlay);
}
您的代码是正常的,但是您使用的随机函数的问题只会生成整数,如果将其更改为1整数,则意味着更改纬度或经度的完整度数,这是hudge置换 因此,您必须生成一个随机的双倍数,而不是整数 我编辑代码以正确工作
using GMap.NET;
using GMap.NET.WindowsForms.Markers;
public class Form1
{
private GMap.NET.WindowsForms.GMapOverlay gMapOverlay;
private Random rand = new Random();
private void Form1_Load(object sender, EventArgs e)
{
GMapControl1.DragButton = MouseButtons.Left;
GMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap;
GMapControl1.Position = new PointLatLng(25.037531, 121.5639969);
GMapControl1.MinZoom = 5;
GMapControl1.MaxZoom = 20;
GMapControl1.ShowCenter = false;
GMapControl1.Zoom = 11;
gMapOverlay = new WindowsForms.GMapOverlay("markers");
gMapOverlay.IsVisibile = true;
}
private void button2_Click(object sender, EventArgs e)
{
var marker = new GMarkerGoogle(new PointLatLng(GetRandomDouble(24.8, 25.1), GetRandomDouble(121.3, 121.6)), GMarkerGoogleType.green);
var marker1 = new GMarkerGoogle(new PointLatLng(GetRandomDouble(24.8, 25.1), GetRandomDouble(121.3, 121.6)), GMarkerGoogleType.pink);
var marker2 = new GMarkerGoogle(new PointLatLng(GetRandomDouble(24.8, 25.1), GetRandomDouble(121.3, 121.6)), GMarkerGoogleType.blue);
var marker3 = new GMarkerGoogle(new PointLatLng(GetRandomDouble(24.8, 25.1), GetRandomDouble(121.3, 121.6)), GMarkerGoogleType.yellow);
marker.IsVisible = true;
marker1.IsVisible = true;
marker2.IsVisible = true;
marker3.IsVisible = true;
// Clear old markers
gMapOverlay.Markers.Clear();
gMapOverlay.Markers.Add(marker);
gMapOverlay.Markers.Add(marker1);
gMapOverlay.Markers.Add(marker2);
gMapOverlay.Markers.Add(marker3);
// Clear old overlay
GMapControl1.Overlays.Clear();
GMapControl1.Overlays.Add(gMapOverlay);
// Zoom the map to show all drawn markers
GMapControl1.ZoomAndCenterMarkers(gMapOverlay.Id);
}
public double GetRandomDouble(double min, double max)
{
return rand.NextDouble() * (max - min) + min;
}
代码现在做什么?你想让它做什么呢?我想在单击按钮时显示多个标记如果你在
Random
行上放置断点,它会被击中吗?