问题描述
我们在地图上显示了许多地图标记,它们代表从高速缓存或异步网络调用中检索到的各种对象。检索到这些对象后,我们将更新相机以确保所有标记均在视图内:
LatLngBounds bounds = mBoundsBuilder.build();
mMapboxMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds,50,100,30));
我们有兴趣将用户的位置添加到地图中,并已使用in this example所示的MapBox提供的LocationComponent
来实现。
问题在于,当LocationComponent
设置为locationComponent .setCameraMode(CameraMode.TRACKING)
时,相机将聚焦在用户的位置,而不会容纳先前设置的标记。将相机模式设置为CameraMode.NONE
可以使用上面的代码片段显示标记,但是在这种情况下mBoundsBuilder
中将不会容纳用户的位置。
显而易见的解决方案似乎是侦听位置更新,然后将坐标手动添加到mBoundsBuilder
,以便考虑用户的位置。但是,这有很多问题,例如:
- 可以多次调用位置更改的回调,而
mBoundsBuilder
仅应包含用户位置的一组坐标,其余对象是以前添加的标记。 - 位置更新是异步的,
getLastKnownLocation
通常会返回null
。
问题:
- 是否存在默认,用于在确保相机容纳地图标记的同时显示用户的位置?
- 如果没有默认选项,该如何正确实施?
版本:
com.mapbox.mapboxsdk:mapbox-android-sdk:6.8.1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)