我通过自定义标记标记当前用户位置。我画了一次,在OnLocationChange
听众中我根据用户位置改变了它的位置,但有时候地图上有一个重复的标记。为什么?你有什么想法?在OnLocationChange
听众中改变标记位置是个好主意吗?
我绘制标记:
currentUserLocationMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(currentUserLocation.latitude, currentUserLocation.longitude))
.title("Current Location"));
并改变他的立场:
currentUserLocationMarker.setPosition(locLatLng);
我的方法如下所示。我在onCreateView()
和OnMyLocationChangeListener()
中调用了一次。
if (currentUserLocationMarker == null) {
currentUserLocationMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(currentUserLocation.latitude, currentUserLocation.longitude))
.title("Current Location"));
} else {
currentUserLocationMarker.setPosition(locLatLng);
}
我认为更好的解决方案是绘制一次,然后改变位置,而不是一直画画,清理和绘图。
通过调用方法.remove()
删除标记是可以接受的,但是在我有许多标记的情况下清除整个地图,例如在地图上绘制的折线很不好。
如果地图有一个单独的方法来移除标记和折线,那将会很有用,但现在有一个方法.clear()
可以清除所有内容。
答案 0 :(得分:0)
根据你的描述,我只能说只有当currentUserLocationMarker在函数调用之间变为null时才会发生。尝试调试并使用logcat。