我有这个微不足道的问题。我有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