Остановить бесконечную прокрутку мира в Mapbox

Карта Mapbox имеет бесконечную прокрутку мира. Я много пробовал, но не могу остановить бесконечную прокрутку мира.

Раньше у Mapbox был какой-то способ (Отключить горизонтальное повторение карты мира с помощью mapbox), но в настоящее время не поддерживается и не уверен для Android.

Кроме того, прослушивая движение камеры, я попытался отменить транзакцию (анимация камеры), но это не сработало.

Мне не удалось найти какой-либо связанный API в mapbox, который мог бы остановить эту непрерывную прокрутку мира в Android.

Я использую Mapbox SDK 9.0.0


person AndroidT    schedule 06.03.2020    source источник
comment
Можете ли вы уточнить, что вы подразумеваете под бесконечной прокруткой карты?   -  person ItsMeNaira    schedule 06.03.2020
comment
Под бесконечной остановкой прокрутки карты я имею в виду, что когда карта достигает края мира, она должна там остановиться. В настоящее время он продолжает прокручиваться по всему миру.   -  person AndroidT    schedule 06.03.2020


Ответы (1)


В этом примере из документации Mapbox показано, как ограничить карту панорамирование. Вы можете создать объект LatLngBounds из северо-западного и юго-восточного углов региона, которым вы хотите ограничить панорамирование карты. В этом случае областью будет весь мир, а границы будут указывать, где должны быть «левые» и «правые» вертикальные отсечки.

Координаты ниже мне подошли, но вы можете изменить их, чтобы получить именно тот эффект, который вы ищете. geojson.io — отличный ресурс для визуализации объектов GeoJSON на карте, если хотел бы поэкспериментировать с настройкой этой ограничивающей рамки.

/* Define bounding box. */
    private static final LatLng BOUND_CORNER_NW = new LatLng(82.85338229176081, -141.328125);
    private static final LatLng BOUND_CORNER_SE = new LatLng( -62.59334083012023, 167.34375);
    private static final LatLngBounds RESTRICTED_BOUNDS_AREA = new LatLngBounds.Builder()
            .include(BOUND_CORNER_NW)
            .include(BOUND_CORNER_SE)
            .build();

Обратите внимание, что Mapbox GL JS имеет setRenderWorldCopies и getRenderWorldCopies, которые, как показано в этом рендеринг копий мира позволяет переключаться между рендерингом одного мира и несколько копий мира. Однако Maps SDK для Android не включает эту функцию.

person Adriana Babakanian    schedule 06.03.2020
comment
Я хотел, чтобы это работало для Android. Предлагаемый вами ответ не работает для Android. Не могли бы вы помочь, так как мы широко используем Mapbox в нашей компании. Спасибо. - person AndroidT; 09.03.2020
comment
Удалось ли вам попробовать этот связанный пример (docs.mapbox.com? /android/maps/examples/restrict-map-panning) и заменить RESTRICTED_BOUNDS_AREA на тот, который указан в моем фрагменте кода выше? Я попробовал это в примере приложения, и это сработало для меня. - person Adriana Babakanian; 09.03.2020