2016-03-07 65 views
1

我想要一个GPS定位系统,将每秒更新用户位置,连续绘制他们已经走过的聚合线的路线,以及在每次更改时将标记移动到最新位置。删除所有标记,而不使用map.clear()谷歌地图 - Xamarin

是否有Xamarin一个很好的方法,以消除所有标记,但没有清除以前连接的折线(如map.clear()会)

现在我明白了,我可以在本地存储的坐标,然后重新每次绘制它们,但是这可能最终会变成一条长路线,我宁愿不必这样做,因为最终会出现一个硬限制,它不能绘制完整路线,在下一组之前坐标来通过,并希望只是将最新的行追加到先前绘制的线,并只需移动标记。

任何信息将不胜感激。

+0

为什么不保留最后一个标记,然后清除那个,当你得到一个新的。标记对象有一个'remove'方法,以及至少在Java它 – tyczj

+0

埃我没有发现,但我没有它Xamarin,那里有一个.dispose(),但它似乎并没有做任何事情.. – Aphire

+0

只是另一个原因,我从来没有使用跨平台开发类似Xamarin – tyczj

回答

2

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

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

大多数开发者存储在一个字典/列表返回这些对象屏蔽器/ ...你可以将它们保存为返回或创建一个基于设备泛型集合使铸造后不需要通用的Java对象。

0

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

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

markerList.Add(marker); 

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

+0

谢谢你抽出时间来解释一下,苏的评论确实让我解决了这个问题,如果他不会很快发表答案的话,我会接受这个答案。 – Aphire