2016-03-07 56 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