Android Google Maps API版本2中的最佳缩放级别

时间:2013-06-19 10:23:35

标签: android android-mapview android-maps

我正在开发一个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的最佳缩放级别。

谢谢。

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);