0

我正在开发一个 android 应用程序,在其中我在 Google 地图中显示用户位置(标记)。

在 Google Maps API version_1 中,为了获得最佳缩放级别,我使用了Android 如何计算最佳缩放级别中解释的类似代码?. 使用它,我将所有标记都放在同一个视图中,并且当我有一个或多个标记时,缩放级别可以正常工作。

但是在 Android Google Maps API version_2 中:

mapView.animateCamera(CameraUpdateFactory.newLatLngBounds(aLocationBuilder.build(), 50));

我试过上面的代码。当我有很多标记时,上面的代码可以正常工作并在同一视图中显示所有标记(具有适当的缩放级别)。

但是,当我只有一个标记时,它会放大到最大。一定不是这样。如何获得 Maps API version_2 的最佳缩放级别。

谢谢你。

4

2 回答 2

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);
于 2013-06-25T15:27:51.110 回答
0

当您只有一个标记时,请使用newLatLngZoom工厂版本。设置LatLng为您的位置Marker并缩放到 21 的值。

于 2013-06-19T13:53:52.430 回答