Удалить или переместить маркер (Mapbox Android)

Я использую 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) я получаю координаты щелчка (которые являются правильными). Но:

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 больше не существует в геометрии.

Любая идея?

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 и установить его положение.

Другие вопросы по тегам