Android Google Maps API v2中用户位置的标记

时间:2013-08-24 13:06:33

标签: java android google-maps google-maps-markers

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

1 个答案:

答案 0 :(得分:0)

根据你的描述,我只能说只有当currentUserLocationMarker在函数调用之间变为null时才会发生。尝试调试并使用logcat。