0

Mapbox SDK Android (「com.mapbox.mapboxsdk:mapbox-android-sdk:4.1.1@aar」および「com.mapbox.mapboxsdk:mapbox-android-services:1.1.0@aar」) を使用しています。オフライン マップを使用してマーカーを配置しましたが、位置の削除と設定が機能しません。

私はグローバルに宣言します:

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 point) で、クリックの座標を取得します (これは正しいです)。しかし:

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 をインポートします。

removeMarker は MarkerViewOptions では機能しないようで、setPosition は geometry.LatLng?? にはもうありません。

何か案が?

4

1 に答える 1

1

MarkerViewnotを使用してマーカーを削除する必要があります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 を削除してその位置を設定してみてください。

于 2016-11-10T21:19:37.607 に答える