如何根据标记位置设置Google地图的缩放级别

时间:2010-12-01 04:42:51

标签: android google-maps android-mapview

我在Google地图上放置了两个标记。一个在美国,另一个在亚洲。 Google只提供缩放级别1,2,3,4,5,6等

我不想硬编码缩放级别。如何根据距离显示所有标记?即如果两个项目彼此非常接近或在同一个城市,则应使用近似缩放级别,如果它们相距很远,则应使用最大缩放级别。

3 个答案:

答案 0 :(得分:1)

您需要将这些标记包含在边界框中,然后使用下面的LatLngBounds对象在其上设置相机:

private void addMarkers() {
    MarkerOptions markerOptions = new MarkerOptions();
    LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder();

    //add the marker locations that you'd like to display on the map
    boundsBuilder.include(new LatLng(lat1, lng1));
    boundsBuilder.include(new LatLng(lat2, lng2));

    final LatLngBounds bounds = boundsBuilder.build();

    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, width, height, padding);
    map.animateCamera(cameraUpdate);
}

答案 1 :(得分:1)

您可以指定位置和缩放级别的缩放级别

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(37,
            -121), 6)); 

https://developers.google.com/maps/documentation/android-api/views

答案 2 :(得分:0)

您用什么来制作地图?我从大约8个月前开始在我的一个项目中使用GMap2 API,看起来我只需要调用'GDirections(map {{div}});' on,以及map div,以使其显示两个位置之间的路线,并适当调整缩放级别。