yipianfengye/android-togetherMap

大神,不建议使用aMap.clear()

Opened this issue · 3 comments

aMap.clear(),会造成定位重绘。
//保存List
public List getTogMarkerList() {
List list=new ArrayList<>();
Iterator<Map.Entry<String, Marker>> iteratorx = togMarkerMap.entrySet().iterator();
while (iteratorx.hasNext()) {
Map.Entry<String, Marker> entry = iteratorx.next();
String key = entry.getKey();
Marker value = entry.getValue();
list.add(value);
}
return list;
}
//遍历List 调用remove()
这个可以在normal状态下调用
2.建议camera. zoom 没有发生变化的时候 ,不需要调用update方法

发现,有些数据清除不成功。上面方法有问题

在 onMapLoadedUpdateMarker 添加
Iterator<Map.Entry<String, Marker>> iterator = togMarkerMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Marker> next = iterator.next();
next.getKey();
Marker value = next.getValue();
value.remove();
}

上面是tog状态,这是normal状态:
public void clearAllMarker() {
if (togDotInfoMap != null) {
System.out.println("okhttp------------------togDotInfoMap=" + togDotInfoMap.size());
Iterator<Map.Entry<String, TogDotInfo>> iterator = togDotInfoMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, TogDotInfo> next = iterator.next();
next.getKey();
TogDotInfo value = next.getValue();
}
togDotInfoMap.clear();
} else {
Log.i(TAG, "clearAllMarker: togDotInfoMap is null");
}
if (togMarkerMap != null) {
System.out.println("okhttp------------------togMarkerMap=" + togMarkerMap.size());
Iterator<Map.Entry<String, Marker>> iterator = togMarkerMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Marker> next = iterator.next();
next.getKey();
Marker value = next.getValue();
value.remove();
//会出现地图展示数量有问题
value=null;
}
togMarkerMap.clear();
} else {
Log.i(TAG, "clearAllMarker: togMarkerMap is null");
}

    System.out.println("okhttp------------------after  togDotInfoMap=" + togDotInfoMap.size());
    System.out.println("okhttp------------------after  togMarkerMap=" + togMarkerMap.size());
}