Остановите прокрутку бесконечного мира в Mapbox - PullRequest
0 голосов
/ 06 марта 2020

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

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

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

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

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

1 Ответ

1 голос
/ 06 марта 2020

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

Приведенные ниже координаты хорошо сработали, но вы могли бы далее настройте их, чтобы получить именно тот эффект, который вы ищете. geo json .io - отличный ресурс для визуализации объектов Geo JSON на карте, если вы хотите поэкспериментировать с настройкой этого ограничивающего прямоугольника.

/* 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 методы, которые, как показано в этом примере рендеринг мировых копий , позволяют переключаться между рендеринг одного мира и нескольких копий мира. Однако в SDK Карт для Android эта функция отсутствует.

...