2017-08-24 28 views
0

ここに状況があります。 Google PlayロケーションサービスとMapBox APIマップを使用します。私はアプリを起動すると、私はすぐに地図上に現在のユーザーの場所を表示:2つのマーカー - 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(); 


       } 
      }); 

私は地図をクリックし

、それはすべてのマーカーを消去し、カレンの上に、後に、新しい目的地マーカーを置きますt位置マーカーが表示されます。

私の質問:現在位置マーカは、まだ更新してしまうと、私は地図をクリック毎回消えないように

  1. は、どのように私は地図上の目的地マーカーを追加するには? は、例えば - 私は、地図上に目的地マーカーを追加します(現在は二つのマーカーがあります)、私は10メートルに私の現在位置マーカの動きを移動するが、先のマーカーが

答えて

2

まま場合は、マーカーの参照を使用する必要があり、 removeMarker()を使用して特定のマーカーのみを削除してください。

Marker myDestinationMarker = mapboxMap.addMarker(markerOptions); 

、その後、右のそれ以上の使用:変数を持っているので、二つのことを

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

注意を、あなたはマーカーを追加/削除の代わりに使用することができますし、ユーザーの場所を示すために、我々はLocationLayer Pluginを提供します。

+0

ありがとうございました!間違いなくそのことを見ていきます。またもう1つの質問 - – Power3000

+0

もう1つの質問: 同じ方法で私の現在の場所を扱うべきでしょうか? 目的地のマーカーと私の現在地が少しずつ変わるとします。私はマップ上の私の目的地のマーカーを失うしたくない私はちょうど私の場所を更新したい – Power3000

関連する問題