在相机范围内包括设备位置和多个地图标记

问题描述

我们在地图上显示了许多地图标记,它们代表从高速缓存或异步网络调用中检索到的各种对象。检索到这些对象后,我们将更新相机以确保所有标记均在视图内:

 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,以便考虑用户的位置。但是,这有很多问题,例如:

  1. 可以多次调用位置更改的回调,而mBoundsBuilder仅应包含用户位置的一组坐标,其余对象是以前添加的标记。
  2. 位置更新是异步的,getLastKnownLocation通常会返回null

问题:

  1. 是否存在默认,用于在确保相机容纳地图标记的同时显示用户的位置?
  2. 如果没有默认选项,该如何正确实施?

版本: com.mapbox.mapboxsdk:mapbox-android-sdk:6.8.1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)