2010-12-01 120 views
2

我在Google地图上放置了两个标记。一个在美国,另一个在亚洲的某个地方。 Google只提供缩放级别1,2,3,4,5,6等。如何根据标记位置设置Google地图的缩放级别

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

+0

你在网络上或者有关的Android用来显示谷歌地图的MapView类谈论谷歌地图API? – Flo 2010-12-01 08:56:40

+0

这是你要求的答案,在这个链接中,我也有这个问题,但解决了。 http://stackoverflow.com/questions/5114710/android-setting-zoom-level-in-google-maps-to-include-all-marker-points – Talha 2011-03-14 13:06:15

回答

0

你用什么来生成你的地图?大约8个月前,我在一个项目中使用GMap2 API,看起来我只需要调用'GDirections(map {{div}});'为了让它显示两个位置之间的路线,并适当地调整缩放的级别,地图div也是如此。

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); 
} 
相关问题