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

Posted

技术标签:

【中文标题】如何根据标记位置设置谷歌地图的缩放级别【英文标题】:How to set zoom level of a Google map according to marker locations 【发布时间】:2010-12-01 04:42:51 【问题描述】:

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

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

【问题讨论】:

您说的是网络上的 Google Maps API 还是 android 中用于显示 Google 地图的 MapView 类? 这是您要求的答案,在此链接中我也有此问题,但已解决。 ***.com/questions/5114710/… 【参考方案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);

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

您使用什么来生成地图?大约 8 个月前,我在我的一个项目中使用 GMap2 API,看起来我只需要调用 'GDirections(mapdiv);'在地图 div 上,以便让它显示两个位置之间的路线,并适当调整缩放级别。

【讨论】:

以上是关于如何根据标记位置设置谷歌地图的缩放级别的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中根据谷歌地图不同的缩放级别调整谷歌地图标记的大小

如何计算适当的谷歌地图缩放级别

如何在谷歌地图中设置缩放级别

根据不同的纬度和长度设置谷歌地图的缩放级别

自动调整缩放以适应谷歌地图中的所有标记

Google Maps API 3 - 根据缩放级别显示/隐藏标记