ใน Google Maps API ใหม่สำหรับ Android เราสามารถเพิ่มเครื่องหมายได้ แต่ไม่มีวิธีใดที่จะลบ (อย่างง่ายดาย) ได้
วิธีแก้ปัญหาของฉันคือเก็บเครื่องหมายไว้ในแผนที่และวาดแผนที่ใหม่เมื่อฉันต้องการลบเครื่องหมายออก แต่มันไม่ค่อยมีประสิทธิภาพ
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);
}
}
});
}
ใครมีความคิดที่ดีกว่านี้?