2017-08-24 86 views
0

這是情況。我使用Google Play位置服務和MapBox API地圖。當我啓動的應用程序,我立即在地圖上顯示當前用戶位置:兩個標記 - MapBox上的當前位置和目標Android

private void add() { 
    currentMarker = new MarkerOptions() 
      .position(currentLatLng); 

    mMapBoxMap.addMarker(currentMarker); 
} 

和更新的位置改變我的標記位置:

private void update() { 
    moveCamera(); 
    mMapBoxMap.clear();//Clear map so no multiple current location markers 
    currentMarker = new MarkerOptions() 
      .position(currentLatLng); 

    mMapBoxMap.addMarker(currentMarker); 
} 

然後,當顯示當前位置,我允許用戶點擊地圖上,並設置了目的地(他目前的位置爲原點):

mMapBoxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() { 
       @Override 
       public void onMapClick(@NonNull LatLng point) { 
        MarkerOptions markerOptions = new MarkerOptions().position(point); 


        mapboxMap.addMarker(markerOptions); 
        destinationLat = point.getLatitude(); 
        destinationLng = point.getLongitude(); 


       } 
      }); 

當我點擊地圖上的,它會清除所有的標記,並在CURREN提出一個新的目標標記,後來t位置標記出現。

我的問題:

  1. 如何在地圖上添加目的地標記,以便在當前位置標記仍然會更新並不會消失,每次我點擊地圖上的? 例如 - 我的地圖(現在有兩個標記)上添加一個目的地標記,如果我將10米我的當前位置標記移動,但目標標記保持

回答

2

您需要使用標記的參考和使用removeMarker()只能刪除某些標記。因此,有一個變量:

Marker myDestinationMarker = mapboxMap.addMarker(markerOptions); 

,然後右上它使用:

if (myDestinationMarker != null) { 
    mapboxMap.removeMarker(myDestinationMarker); 
} 

注意兩件事情,你可以用,而不是添加/刪除標記,並用於顯示用戶所在位置,我們提供的LocationLayer Plugin

+0

非常感謝!肯定會考慮一下。另外還有一個問題 - – Power3000

+0

還有一個問題: 我是否應該以同樣的方式處理我的當前位置? 比方說,我把我的目的地標記和我目前的位置改變了一小部分。我不想在地圖上丟失目標標記,我只想更新我的位置 – Power3000