我正在尝试建立一个GPS定位系统,每秒更新一次用户位置,连续绘制他们使用Poly-lines行进的路线,并在每次更改时将标记移动到最新位置。
在Xamarin中有一种很好的方法可以删除所有标记,但没有清除以前附加的折线(如map.clear()
会这样)
现在我明白我可以在本地存储坐标,然后每次重新绘制它们,但是这可能最终成为非常长路线,我宁愿不必做这个,因为最终会有一个硬限制,它不能绘制完整的路线,在下一组坐标通过之前,并且只想将最新的线附加到先前绘制的线上,然后移动标记。
非常感谢有关此事的任何信息。
答案 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调用它。