[英]How to remove map markers
我想實現一個地圖系統,用戶可以在其中選擇起點和終點作為兩個不同的標記。
當用戶長按地圖時,他們可以選擇一個按鈕以將該位置用作起點或終點。
case (R.id.setStart):
markerStart = mMap.addMarker(new MarkerOptions()
.position(this.startPoint)
.title("Start")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
outputName = rGC.getStringFromCoordinates(this.startPoint.latitude, this.startPoint.longitude);
autocompleterStart.setText(outputName);
break;
case (R.id.setEnd):
markerEnd = mMap.addMarker(new MarkerOptions()
.position(this.endPoint)
.title("End")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
但是,當用戶重復相同的過程(選擇新位置作為開始/結束)時,我希望能夠刪除以前的標記。 因此,如果他們選擇相同的“開始”按鈕,則將刪除先前的開始標記,並創建一個新標記。
有沒有辦法檢查地圖上是否存在特定標記。 我嘗試添加marker.remove();
但是它給了我一個nullpointerexception。
case (R.id.setEnd):
markerEnd.remove();
markerEnd = mMap.addMarker(new MarkerOptions()
.position(this.endPoint)
.title("End")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
有任何想法嗎? 提前致謝!
您可以使用我已經在我的應用中實現的方法並且可以正常工作...對我來說
LatLng latpoint;
MAP.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
// TODO Auto-generated method stub
// MAP.clear();
if (marker != null) {
marker.remove();
}
latpoint = point;
marker = MAP.addMarker(new MarkerOptions()
.position(
new LatLng(latpoint.latitude,
latpoint.longitude))
.title(point.toString()).draggable(true)
.visible(true));
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.