在列表和地图上添加标记但在循环时无法从地图中删除这些标记

时间:2018-03-13 13:53:34

标签: android google-maps xamarin

以下是代码,我如何在地图中添加标记:

markerOpt = new MarkerOptions();
markerOpt.SetTitle("Shop");
markerOpt.SetPosition(Location);
_map.AddMarker(markerOpt).ShowInfoWindow();
Marker aM = _map.AddMarker(markerOpt);
listCurrentPostsMarkers.Add(aM);

在地图和列表中添加标记但在地图上无法删除这些标记时没问题。这是代码,我是怎么做的。

foreach(Marker mk in listCurrentPostsMarkers)
{
   mk.Remove();
}

以下是具有类

的对象
List<Android.Gms.Maps.Model.Marker> listCurrentPostsMarkers
Android.Gms.Maps.GoogleMap _map
Android.Gms.Maps.Model.LatLng Location

我是新来的。提前致谢。欢呼声。

2 个答案:

答案 0 :(得分:0)

代码说起来比散文更响亮我猜:

markerOpt = new MarkerOptions();
markerOpt.SetTitle("Shop");
markerOpt.SetPosition(Location);
Marker aM = _map.AddMarker(markerOpt);
aM.ShowInfoWindow();
// you don't need this line (it creates a duplicate marker) ===> Marker aM = _map.AddMarker(markerOpt);
listCurrentPostsMarkers.Add(aM);

答案 1 :(得分:0)

问题是你要互相制作两个标记!!!

_map.AddMarker(markerOpt).ShowInfoWindow(); //first one added here
Marker aM = _map.AddMarker(markerOpt); // second one added here

稍后您只删除其中一个,这就是您仍然在地图上看到一个的原因。 做@Andy告诉你的事情:

markerOpt = new MarkerOptions();
markerOpt.SetTitle("Shop");
markerOpt.SetPosition(Location);
Marker aM = _map.AddMarker(markerOpt);
aM.ShowInfoWindow();
listCurrentPostsMarkers.Add(aM);