删除所有标记而不使用map.clear()谷歌地图 - Xamarin

时间:2016-03-07 15:39:44

标签: c# android google-maps xamarin

我正在尝试建立一个GPS定位系统,每秒更新一次用户位置,连续绘制他们使用Poly-lines行进的路线,并在每次更改时将标记移动到最新位置。

在Xamarin中有一种很好的方法可以删除所有标记,但没有清除以前附加的折线(如map.clear()会这样)

现在我明白我可以在本地存储坐标,然后每次重新绘制它们,但是这可能最终成为非常长路线,我宁愿不必做这个,因为最终会有一个硬限制,它不能绘制完整的路线,在下一组坐标通过之前,并且只想将最新的线附加到先前绘制的线上,然后移动标记。

非常感谢有关此事的任何信息。

2 个答案:

答案 0 :(得分:2)

从地图Marker方法返回的AddMarker对象具有.Remove方法。

将此返回的对象投射为Maker,您可以访问.Remove方法,将其从当前附加的地图中删除。

大多数开发人员将这些返回的masker对象存储在字典/列表/中......您可以将它们保存为返回的通用java对象,也可以创建基于Maker的泛型集合,因此不需要以后进行转换。

答案 1 :(得分:0)

要删除标记而不通过Clear方法清除地图,您需要跟踪所有标记。

var marker = Map.AddMarker(new MarkerOptions().SetPosition(new LatLng(MyPosition.Latitude, MyPosition.Longitude)));

markerList.Add(marker);

每个标记都有一个Remove方法,你可以通过遍历markerList调用它。