1

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

4

1 回答 1

0

根据您的描述,我只能说只有 currentUserLocationMarker 在函数调用之间变为 null 时才会发生这种情况。尝试调试和使用 logcat。

于 2013-08-25T05:53:15.773 回答