我正在寻找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
问题似乎非常相似。我尝试了所提出的解决方案,但没有令人满意的结果。
我是否错过了某些实施或是否有人知道一个不错的解决方法?
提前致谢。