Trong API Google Maps mới dành cho Android, chúng tôi có thể thêm một điểm đánh dấu , nhưng không có cách nào để (dễ dàng) xóa một điểm đánh dấu .
Giải pháp của tôi là giữ các điểm đánh dấu trong bản đồ và vẽ lại bản đồ khi tôi muốn xóa điểm đánh dấu, nhưng nó không hiệu quả lắm.
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);
}
}
});
}
Có ai có một ý tưởng tốt hơn?