Gmaps.NET动态标记

时间:2015-12-15 17:17:26

标签: c# gmap.net

我在GMAP.NET地图上有多个标记,通过线程上的委托进行更新 - 如何确保当新标准从线程传递到更新委托时标记只是更新是位置,而不是创建一个新标记?

代码低于

double lat = Convert.ToDouble(latlong[0]); //latitude string part of array
double longitude = Convert.ToDouble(latlong[1]); //longitude string part of array

GMapOverlay markersOverlay = new GMapOverlay("markers");
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(lat, longitude),  
              GMarkerGoogleType.green);

gmap2.Overlays.Clear();
markersOverlay.Markers.Add(marker);

gmap2.Overlays.Add(markersOverlay);

gmap2.Refresh();

从线程提供纬度和经度。

干杯!

2 个答案:

答案 0 :(得分:0)

通常使用GPS装置的数据,您可以获得某种设备ID。使用此数据可以使用Tag的{​​{1}}来区分不同的标记:

GMapMarker

答案 1 :(得分:-1)

GMapOverlay markersOverlay = new GMapOverlay("marker");
        GMapOverlay mark = new GMapOverlay("addmark");
        GMapMarker addmark = new GMarkerGoogle(new PointLatLng(33.6491, 73.0833), GMarkerGoogleType.lightblue);
        GMapMarker addmark1 = new GMarkerGoogle(new PointLatLng(33.6844, 73.0479), GMarkerGoogleType.lightblue);
        mark.Markers.Add(addmark);

GMap.NET.WindowsForms.GMapMarker marker =
new GMap.NET.WindowsForms.Markers.GMarkerGoogle(
    new GMap.NET.PointLatLng(33.626057, 73.071442),
    GMap.NET.WindowsForms.Markers.GMarkerGoogleType.lightblue);
       markersOverlay.Markers.Add(addmark1);
       markersOverlay.Markers.Add(marker);
       gMapControl1.Overlays.Add(mark);

      // gMapControl1.Overlays.Clear();
        gMapControl1.MarkersEnabled = true;
        gMapControl1.Overlays.Add(markersOverlay);
        gMapControl1.Refresh();
       // gMapControl1.

        gMapControl1.Position = new PointLatLng(33.626057, 73.071442);