如何解决在相机范围内包括设备位置和多个地图标记
我们在地图上显示了许多地图标记,它们代表从高速缓存或异步网络调用中检索到的各种对象。检索到这些对象后,我们将更新相机以确保所有标记均在视图内:
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
解决方法
看看这个-> https://www.github.com/bkhezry/MapDrawingTools,它有助于在地图上绘制多边形。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。