我有這個微不足道的問題。我有Listener方法,它會監聽標記。當某人更改位置時,它會觸發偵聽器方法,然後觸發onLocationLoaded()
方法並傳遞MarkerOption
對象,該對象具有所有位置和其他詳細信息。現在我的問題是將這個MarkerOption markersReceived
對象保存在具有特殊ID的Marker對象中,以便稍後我可以通過此ID找到它們,以便在相同MarkerOption的位置更新時從該映射中單獨刪除它們。對於唯一的ID我已經將它保存在MarkerOption的標題中。刪除地圖上的多個標記與更新的標記
因此,這裏是我的代碼
final Marker[] markerTrack = new Marker[3];
final String[] idTrack = new String[3];
public void onLocationLoaded(MarkerOptions markersReceived) {
if(markersReceived != null) {
/// Check if marker is implemented if yes then remove and overwrite exixting else make new array
for(int i =0 ; i < markerTrack.length; i++){
if(idTrack[i] == markersReceived.getTitle()){
markerTrack[i].remove();
markerTrack[i] = mMap.addMarker(markersReceived);
}else{
//make new marker
markerTrack[i] = mMap.addMarker(markersReceived);
idTrack[i] = markersReceived.getTitle();
}
}
所以在這裏onLocationLoaded(MarkerOptions markersReceived)
方法它接收多個對象的MarkerOptions,問題是要找出相似的對象,並在地圖上對其進行更新,並從地圖中刪除一個標記。這個刪除的東西正在竊聽我地圖充滿了新的和以前的標記
PS mMap.clear()沒有幫助。反正Thanx提前幫助。
你在刪除已經添加的標記時遇到了問題,因爲當你比較標題時你沒有與字符串文本進行比較,代碼是字符串的對象比較,因此不匹配,請檢查readyandroid的答案。 –
@ReadyAndroid我終於明白了....感謝你的努力 – Oswald