【问题标题】:Xamarin - Android.GoogleMap remove markerXamarin - Android.GoogleMap 删除标记
【发布时间】:2017-07-21 03:02:36
【问题描述】:

我在 Xamarin 表单中使用 Android.Gms.Maps.GoogleMap 包,但我似乎找不到删除 Marker 实例的函数。我在List<Marker> 中保存了对我所有Marker 的引用,需要定期删除它们以用新的Marker 替换它们

这是我的代码:

var markerOptions = new MarkerOptions();
markerOptions.Draggable(false);
markerOptions.SetTitle(userLocations[i].user_id);
markerOptions.SetPosition(new LatLng(Convert.ToDouble(latLongs.latitude), Convert.ToDouble(latLongs.longitude)));
markerOptions.SetSnippet("Latitude: " + Convert.ToDouble(latLongs.latitude) + " Longitude: " + Convert.ToDouble(latLongs.longitude));
markerOptionsList.Add(markerOptions); //List<Marker>
map.AddMarker(markerOptions);

【问题讨论】:

    标签: c# google-maps xamarin google-maps-api-3


    【解决方案1】:

    map.AddMarker() 返回一个Marker 对象。当您想要删除Marker 时,您必须将其存储在一个列表中以供参考。删除函数就是marker.Remove();

    创建标记列表:

    List<Marker> marketList = new List<Marker>;
    

    添加标记:

    var markerOptions = new MarkerOptions();
    markerOptions.Draggable(false);
    markerOptions.SetTitle(userLocations[i].user_id);
    markerOptions.SetPosition(new LatLng(Convert.ToDouble(latLongs.latitude), Convert.ToDouble(latLongs.longitude)));
    markerOptions.SetSnippet("Latitude: " + Convert.ToDouble(latLongs.latitude) + " Longitude: " + Convert.ToDouble(latLongs.longitude));
    Marker M = map.AddMarker(markerOptions);
    markerList.Add(M);
    

    要删除标记:

     foreach (Marker m in markerList)
     {
         m.Remove();
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2013-12-27
      • 2015-01-16
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多