我有一个已正确初始化的GoogleMap(精简模式)对象。它可以使用单个标记正常工作,并使用带有newLatLngZoom的CameraUpdate关注适当的区域。
然而,当谈到添加两个标记,并让地图使用LatLngBounds保持在视野中时,一切都变得疯狂。地图缩小后显示整个大陆,两个标记位于彼此的顶部(与折线一起)。
请假设来自取件和目的地的数据是正确的
这是我的代码:
googleMap.addMarker(new MarkerOptions()
.position(pickup)
.title(job.getPickupAddress()));
googleMap.addMarker(new MarkerOptions()
.position(destination)
.title(job.getDestinationAddress())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(new LatLngBounds.Builder().include(pickup).include(destination).build(), 0);
googleMap.moveCamera(cameraUpdate);
String pickupLatLng = job.getPickupLatLong().latitude + "," + job.getPickupLatLong().longitude;
String destinationLatLng = job.getDestinationLatLong().latitude + "," + job.getDestinationLatLong().longitude;
plotPolyLines(pickupLatLng, destinationLatLng);
输出:
答案 0 :(得分:0)
尝试更改行
googleMap.moveCamera(cameraUpdate);
到
googleMap.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(xxxx,xxxx) , 14.0f) );
How do I set default location and Zoom level for google map api v2?中的建议 或使用
map.animateCamera(CameraUpdateFactory.zoomTo(15), 2000, null);
应该将相机移近您的标记。
答案 1 :(得分:0)
使用latlng界限设置缩放不是所有用例的有效解决方案。
可能是相关的错误Maps Lite mode with incorrect zoom level first time app starts
尝试此处列出的一些解决方案/黑客:https://issuetracker.google.com/issues/36218443
像通过销毁和重新创建来刷新地图
如果地图设置为正确的缩放级别,还要检查是否使用带有边界构建器的单个标记
最后一件事是确保未应用缩放级别限制。