2016-11-09 80 views
0

我正在使用Mapbox SDK Android('com.mapbox.mapboxsdk:mapbox-android-sdk:[email protected]'和'com.mapbox.mapboxsdk:mapbox-android-服務:[email protected]')。 我使用離線地圖,並把標記,但刪除和設置不工作。刪除或移動標記(Mapbox 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); 

我得到「removeMarker(com.mapbox.mapboxsdk.annotations.Marker)在MapboxMap不能適用於(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;

看來removeMarker不能與MarkerViewOptions一起使用,並且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