GoogleMap.OnCameraIdleListener等效地图

时间:2017-05-05 12:34:44

标签: android mapbox

我正在寻找Mapbox Android SDK中的 GoogleMap.OnCameraIdleListener

USECASE

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

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

我尝试了什么

我曾尝试使用MapboxMap类提供的各种侦听器,但所有这些都经常被调用。如下所示:

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

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

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

可能重复

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

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

问题似乎非常相似。我尝试了所提出的解决方案,但没有令人满意的结果。

我是否错过了某些实施或是否有人知道一个不错的解决方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)