Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gmap.net可以';t使用C#winform显示多个标记_C#_Winforms_Gmap.net - Fatal编程技术网

Gmap.net可以';t使用C#winform显示多个标记

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

我想在地图上显示多个标记,但似乎不行,代码如下: 按钮1\单击显示位置,按钮2\单击显示标记! 有人给我指示吗?谢谢

 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
行上放置断点,它会被击中吗?