在 Mapbox 中停止无限世界滚动

Stop infinite world scrolling in Mapbox

Mapbox 地图正在无限滚动。我已经尝试了很多,但我无法阻止世界无限滚动。

Mapbox 以前有一些方法 (Disable horizontal repeating of world map with mapbox) 但目前不支持并且不确定 Android。

此外,通过监听相机移动,我尝试取消交易(相机动画),但没有成功。

我无法在 mapbox 中找到任何相关的 API 来阻止这个连续的世界在 Android 中滚动。

我正在使用 Mapbox SDK 9.0.0

Mapbox 文档中的

This example 显示了如何限制地图平移。您可以从要限制地图平移的区域的西北角和东南角创建一个 LatLngBounds 对象。在这种情况下,该区域将是整个世界,边界将指定您希望 "left" 和 "right" 垂直截止点所在的位置。

下面的坐标对我来说效果很好,但您可以进一步调整它们以获得您正在寻找的确切效果。 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 and getRenderWorldCopies methods, which, as demonstrated in this render world copies 示例,允许您在渲染单个世界和多个世界副本之间切换。然而,Android 的 Maps SDK 不包含相同的功能。