0
我想實現一個地圖系統,用戶可以選擇一個起點和目的地作爲兩個不同的標記。如何刪除地圖標記
當用戶長時間點擊地圖時,他們可以選擇一個按鈕來使用這個位置作爲開始或結束點。
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)));
然而,當用戶重複相同的處理(選擇新的位置作爲開始/結束),我希望能夠刪除以前的標記物。因此,如果他們選擇相同的START按鈕,則會刪除先前的開始標記並創建一個新的標記。
有沒有辦法檢查地圖上是否存在特定標記。我嘗試添加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)));
任何想法?先謝謝了!
如果你得到一個零點異常是因爲'marker'爲空。嘗試在它之前添加'if(marker!= null)',以便在未設置標記時第一次跳過該命令。 – Robadob
@Robadob它仍然不起作用,因爲我需要在方法開始時初始化兩個標記。所以它不會刪除任何東西。 – linus
也許你應該將標記存儲在你的班級內的某個地方?您可以重新獲得標記的句柄的唯一方法是從用戶點擊它們。 – Robadob