我正在开发一个Android应用,我在其中显示Google地图中的用户位置(标记)。
在Google Maps API version_1中,为了获得最佳缩放级别,我使用了Android how to calculate optimal zoom level?中说明的类似代码。使用这个,我有相同视图中的所有标记,当我有一个或多个标记时,缩放级别正常工作。
但是在Android Google Maps API版本2:
中mapView.animateCamera(CameraUpdateFactory.newLatLngBounds(aLocationBuilder.build(), 50));
我尝试了上面的代码。当我有许多标记时,上面的代码正常工作并在同一视图中显示所有标记(具有适当的缩放级别)。
然而,当我只有一个标记时,它会缩放到最大值。一定不是这样。如何获得Maps API版本_2的最佳缩放级别。
谢谢。
答案 0 :(得分:0)
如果只有一个标记,请使用newLatLngZoom
版本的工厂。将LatLng
设置为Marker
的位置,然后将其缩放为值21。
答案 1 :(得分:0)
你可以计算所有标记的边界并缩小以适应它们,这里是我在Javascript中为Maps v3编写的内容的摘录。我相信你可以通过一些调整将它用于Android
//Make an array of the LatLng's of the markers you want to show
var LatLngList = new Array (new google.maps.LatLng (52.537,-2.061), new google.maps.LatLng (52.564,-2.017));
// Create a new viewpoint bound
var bounds = new google.maps.LatLngBounds ();
// Go through each...
for (var i = 0, LtLgLen = LatLngList.length; i < LtLgLen; i++) {
// And increase the bounds to take this point
bounds.extend (LatLngList[i]);
}
// Fit these bounds to the map
map.fitBounds (bounds);