相关疑难解决方法(0)

从GoogleMap中删除标记

在适用于Android的新Google Maps API中,我们可以添加标记,但无法(轻松)删除标记.

我的解决方案是将标记保留在地图中并在我想删除标记时重绘地图,但效率不高.

private final Map<String, MarkerOptions> mMarkers = new ConcurrentHashMap<String, MarkerOptions>();

private void add(String name, LatLng ll) {
  final MarkerOptions marker = new MarkerOptions().position(ll).title(name);
  mMarkers.put(name, marker);

  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      mMap.addMarker(marker);
    }
  });
}

private void remove(String name) {
  mMarkers.remove(name);

  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      mMap.clear();

      for (MarkerOptions item : mMarkers.values()) {
        mMap.addMarker(item);
      }
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

有没有人有更好的主意?

android google-maps

109
推荐指数
5
解决办法
9万
查看次数

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

码:

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);

            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

我希望当我点击地图时,会有一个与显示点击位置相关的标记.和被删除之前的标记.因此,只有一个与显示点击位置相关的标记.

我已经知道mGoogleMap.clean();可以清理地图,也可以在地图上标记.

但我想删除特定的标记.(因为,在我的应用程序中,有很多种标记.例如,一个主标记显示用户家的位置,而公共汽车站标记显示公共汽车站的位置.)

所以我创建了ArrayList并尝试使用它.

但它没有用.

我想当我点击地图时,addmarker();效果不错但.remove();似乎无法正常工作.

错误在哪里?

如何仅删除特定标记?

我读过:如何删除Google地图v2中的标记?

android google-maps

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×2

google-maps ×2