2016-11-09 52 views
0

Mapbox SDKを使用しています。Android( 'com.mapbox.mapboxsdk:mapbox-android-sdk:[email protected]' and 'com.mapbox.mapboxsdk:mapbox-android-サービス:[email protected] ')。 私はオフラインのマップとマーカーを使用しますが、削除と設定位置は正しくありません。マーカーを削除または移動する(マップボックスAndroid)

私はグローバルに宣言:

private MapboxMap mapboxMap2; 
private MarkerViewOptions marker_inter; 

その後、私のOnMapReadyCallbackに()、私はMapboxMapを保存:

public void onMapReady(MapboxMap mapboxMap) 
     { 
      mapboxMap2 = mapboxMap; 

ので、私は後者のそれを使用することができます。 OnMapReadyCallbackでも

私が使用してマーカーを置く:

   marker_inter = new MarkerViewOptions() 
         .position(new LatLng(the_lagps_inter, the_logps_inter)) 
         .title("Intervention") 
         .snippet("Desc inter") 
         .icon(iconeInter); 
       markerView = mapboxMap.addMarker(marker_inter); 

マーカーが正しく設定されています。 次にonMapClick(@NonNull LatLng点)でクリックの座標を取得します(これは正しい)。しかし:

1)私が使用してマーカーを削除しようとした場合:

mapboxMap2.removeMarker(marker_inter); 

を私はMapboxMapでremoveMarker(com.mapbox.mapboxsdk.annotations.Marker)は(com.mapboxに適用することはできません」を取得.mapboxsdk.annotations.MarkerViewOptions) "

2)私が使用して新しい位置を設定しようとした場合:

marker_inter.setPosition(new LatLng(the_lagps_inter, the_logps_inter)); 

を私が手:" メソッド 'setPosition(com.mapbox.maboxsdk.geometry.LatLng)を解決できません "

注:com.mapbox.mapboxsdk.geometry.LatLngをインポートします。

MarkerViewOptionsではremoveMarkerが機能しませんし、setPositionはgeometry.LatLngでなくなっているようですね??

答えて

1

MarkerViewではなくMarkerViewOptionsを使用してマーカーを削除する必要があります。コードを次のように変更してください:

private MarkerView marker_inter; 

... 

marker_inter = mapboxMap.addMarker(new MarkerViewOptions() 
    .position(new LatLng(the_lagps_inter, the_logps_inter)) 
    .title("Intervention") 
    .snippet("Desc inter") 
    .icon(iconeInter)); 

そして、MarkerViewを削除してその位置を設定してみてください。

+0

よろしくお願い致します。 Mapboxの例を更新することをお勧めします:https://www.mapbox.com/help/android-markers/「マーカーを追加する」サンプルコードでは「MarkerViewOptionsマーカー」を使用し、「マーカーを削除する」の説明では「mapboxMapを使用する.removeMarker(マーカー); "混乱している。私はそれをMapboxサイトに掲載します。私は数分で地図の焦点に関する別の質問を投稿します。 ;) – Peter

関連する問題