Android LatLngBounds或CameraUpdate在地图精简模式下不显示所有点
我有一张地图,其中显示了一系列由多段线链接的点,地图是LiteMode,但在某些情况下,当使用这些点创建LatLngBounds并更新相机时,一些点被排除在地图之外Android LatLngBounds或CameraUpdate在地图精简模式下不显示所有点,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我有一张地图,其中显示了一系列由多段线链接的点,地图是LiteMode,但在某些情况下,当使用这些点创建LatLngBounds并更新相机时,一些点被排除在地图之外 LatLngBounds.Builder builder = new LatLngBounds.Builder(); for (LatLng latLng : listPoints) { builder.include(latLng); } LatLngBounds bounds = bu
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (LatLng latLng : listPoints) {
builder.include(latLng);
}
LatLngBounds bounds = builder.build();
int padding = 0; //offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
map.moveCamera(cu);
我怎样才能解决这个问题
通过多段线,我们可以看到,即使更改焊盘,它们也看不见:
因此,如果我删除LiteMode:
我解决了这个问题
根据谷歌地图,Lite模式表示: 摄影机位置、缩放和动画
支持?部分
可以设置相机目标和缩放,但不能设置倾斜或方位缩放级别在lite模式下四舍五入到最接近的整数。调用GoogleMap.moveCamera()将为您提供另一张静态地图图像。有关设置和操作摄影机的详细信息,请参见更改视图 我的解决方案是从地图中获取可见区域并进行比较,以查看列表中的任何点是否在该区域之外。如果是,我应用ZoomOut将相机缩小到足够大的范围,以便所有点都在可见区域内
for (LatLng latLng : listPoints) {
if (!(map.getProjection().getVisibleRegion().latLngBounds.contains(latLng))) {
map.moveCamera(CameraUpdateFactory.zoomOut());
break;
}
}
显然,据我所知,问题在于,如果缩放级别为7.4,通过将其四舍五入到最接近的整数来正确显示地图上的所有点:7,则与禁用的LiteMode四舍五入到8时相比,有价值的.4边距会丢失
我不知道这是否最理想的选择,但问题已经解决了。欢迎任何意见!:) 考虑到这些限制,您的解决方案是最佳选择。当这解决了你的问题时,你应该接受你自己的答案,这样才能帮助别人