GoogleMap.OnCameraIdleListener 相当于 Mapbox

GoogleMap.OnCameraIdleListener Mapbox equivalent

我正在寻找 Mapbox Android SDK 中的 GoogleMap.OnCameraIdleListener 等效项。

用例

在地图上平移时,我需要从服务器查询一些要显示在地图上的geojson。

为此,我需要能够检测地图何时移动并再次空闲。 Google 地图有 OnCameraIdleListener,OpenLayers 有 'moveend' 事件。由于一些许可问题,我无法使用 Google 地图,我正在尝试寻找我目前使用的 OpenLayers 的原生替代品。

我试过的

我曾尝试使用 MapboxMap class 提供的各种侦听器,但它们都被调用得太频繁了。像下面这样:

map.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() {
    @Override
    public void onCameraChange(CameraPosition position) {
        Log.d("TAG", map.getProjection().getVisibleRegion().latLngBounds.toString());
    }
});

该方法被调用了很多次(我认为在平移期间每 400 毫秒)。如果我直接使用该方法,服务器负载会太大以及处理返回的数据。

我可以制定一个解决方法,仅在 5-800 毫秒内没有发生 CameraChange 事件时才调用服务器,但这会导致一些不好代码。

可能重复

我在 MapBox github 中找到了以下内容:

https://github.com/mapbox/mapbox-gl-native/issues/4746

这个问题看起来很相似。我已经尝试了建议的解决方案,但没有令人满意的结果。

我是不是错过了一些实现,或者有人知道一个很好的解决方法吗?

提前致谢。

v5.1.0 中添加的功能

https://github.com/mapbox/mapbox-gl-native/pull/8644