gpt4 book ai didi

android - 如何删除 Android GoogleMap 上的特定标记

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:50 30 4
gpt4 key购买 nike

代码:

private Marker mCurrentMarker;
private ArrayList<Marker> mMarkerArrayList;

@Override
public void onMapReady(final GoogleMap googleMap) {
mGoogleMap = googleMap;

mMarkerArrayList = new ArrayList<>();
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {

MarkerOptions marker_onclick = new MarkerOptions().position(
new LatLng(point.latitude, point.longitude)).title(getString(R.string.now_your_location));
if (mMarkerArrayList.size() > 0){
Marker marker_to_remove = mMarkerArrayList.get(0);
marker_to_remove.remove();
}

mCurrentMarker = mGoogleMap.addMarker(marker_onclick);

mGoogleMap.addMarker(marker_onclick);
mMarkerArrayList.add(mCurrentMarker);

}
});
}

我希望当我点击 map 时,会有一个与显示点击位置相关的标记。以及在被移除之前已经存在的标记。因此,只有一个标记与显示点击位置相关。

我已经知道 mGoogleMap.clean(); 可以清理 map ,也可以清理 map 上的标记。

但我想删除特定标记。 (因为,在我的应用程序中,有很多种标记。例如,家标记是显示用户家的位置,公交车站标记是显示公交车站的位置。)

所以我制作了ArrayList并尝试使用它。

但是没有用。

我想当我点击 map 时,addmarker(); 运行良好,但 .remove(); 似乎不起作用。

错在哪里?

如何只删除特定标记?

我读到:How to remove the marker in Google map v2?

最佳答案

当你在 Map 上添加一个标记时,你可以像这样将它存储到 HashMap 中:

 HashMap<YourUniqueKey,Marker> hashMapMarker = new HashMap<>();
Marker marker = googleMap.addMarker(markerOptions);
hashMapMarker.put(YourUniqueKey,marker);

当您想删除特定标记时,只需通过 YourUniqueKey 为该标记获取您的 Maker,如下所示:

Marker marker = hashMapMarker.get(YourUniqueKey);
marker.remove();
hashMapMarker.remove(YourUniqueKey);

关于android - 如何删除 Android GoogleMap 上的特定标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40436277/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com