LatLngBounds与CameraUpdate不放大

时间:2017-05-24 20:58:05

标签: android google-maps-markers google-maps-android-api-2

我有一个已正确初始化的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);

输出:

The output

2 个答案:

答案 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

像通过销毁和重新创建来刷新地图

如果地图设置为正确的缩放级别,还要检查是否使用带有边界构建器的单个标记

最后一件事是确保未应用缩放级别限制。