새로운 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);
}
}
});
}
누구든지 더 나은 아이디어가 있습니까?