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 中添加的功能
我正在寻找 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 中添加的功能