我用自定义标记标记当前用户位置。我画了一次,在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()
可以清除所有内容。