在Android中清除Google地图中的标记

时间:2013-03-27 16:15:33

标签: android google-maps-android-api-2

我在片段活动上添加了地图并使用addMarker函数添加了几个标记,但是我能够删除所有标记,我收到不同标记列表的通知,

现在我想删除所有标记并添加新标记。

将所有标记保留在列表中并逐个删除的一种方法(marker.remove())

有没有更好的方法来清除所有标记。

2 个答案:

答案 0 :(得分:190)

如果您要清除“地图上的所有标记,叠加层和折线”,use clear() on your GoogleMap

答案 1 :(得分:4)

如果您不希望清除折线并且仅需要删除标记,请按照以下步骤操作。

首先像下面一样创建一个新的标记数组

List<Marker> AllMarkers = new ArrayList<Marker>();

然后,当您在Google地图上添加标记时,还将它们添加到标记数组(在此示例中为AllMarkers)

for(int i=0;i<places.length();i++){

                LatLng location = new LatLng(Lat,Long);
                MarkerOptions markerOptions = new MarkerOptions();
                markerOptions.position(location);
                markerOptions.title("Your title");

                 Marker mLocationMarker = Map.addMarker(markerOptions); // add the marker to Map
                    AllMarkers.add(mLocationMarker); // add the marker to array

                }

然后最终调用以下方法一次删除所有标记

 private void removeAllMarkers() {
        for (Marker mLocationMarker: AllMarkers) {
            mLocationMarker.remove();
        }
        AllMarkers.clear();

    }

从任何地方致电以删除所有标记

removeAllMarkers();

当我在寻找一种只删除地图标记而不清除折线的方法时,我找到了这种解决方案。希望这对您也有帮助。