我有一張地圖,一次只允許一個標記。但爲了防止標記意外地被另一個標記替換,需要設置標記,以便在添加另一個標記之前清除標記。
我正在通過onMapClick設置標記並通過onMapLongClick清除它們。就目前而言,標記的清除和添加工作正常,但我似乎無法設置地圖,因此您需要先清除地圖。
我試過check for existing markers的解決方案,但它沒有奏效。
這裏是我的設置,目前工程通過清除現有的標記,並添加其他而不需要清除原有標記第一碼:爲什麼我的標記不能重置爲空?
@Override
public void onMapLongClick(LatLng position) {
mMap.clear();
Toast.makeText(this, "Position Cleared", Toast.LENGTH_SHORT).show();
position = null;
}
@Override
public void onMapClick(LatLng position){
if (position != null){
mMap.clear();
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
else {
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
}
但我認爲這應該是這樣的:
@Override
public void onMapLongClick(LatLng position) {
mMap.clear();
Toast.makeText(this, "Position Cleared", Toast.LENGTH_SHORT).show();
position = null;
}
@Override
public void onMapClick(LatLng position){
if (position == null){
//mMap.clear();
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
else {
Toast.makeText(this, "Clear first", Toast.LENGTH_SHORT).show();
}
}
但是,所有這些都會給我Toast消息,即使在第一次加載地圖時也不能添加標記。
任何幫助將是巨大的
爲什麼你不記得標記引用而不是位置? 'map.addMarker()'返回對添加標記的引用。然後當你引用的時候是null添加新的標記,當它不爲空的時候,要求清除映射(你可以通過調用remove()方法來移除標記 –
@BobanS。 - 這就是我正在嘗試並未能實現的:/ –
我修復了它。謝謝 –