我正在寻找一种使用Google Maps V3 API计算给定边界的缩放级别的方法,类似于getBoundsZoomLevel()
V2 API.
这是我想要做的:
// These are exact bounds previously captured from the map object
var sw = new google.maps.LatLng(42.763479, -84.338918);
var ne = new google.maps.LatLng(42.679488, -84.524313);
var bounds = new google.maps.LatLngBounds(sw, ne);
var zoom = // do some magic to calculate the zoom level
// Set the map to these exact bounds
map.setCenter(bounds.getCenter());
map.setZoom(zoom);
// NOTE: fitBounds() will not work
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法将该fitBounds()
方法用于我的特定用例.它适用于在地图上拟合标记,但它不适用于设置精确边界.这是我不能使用该fitBounds()
方法的一个例子.
map.fitBounds(map.getBounds()); // not what you expect
Run Code Online (Sandbox Code Playgroud) 在API v2中,map对象有一个方便的方法getBoundsZoomLevel().我用它来获得最适合边界的缩放级别,然后以某种方式操纵这个最佳缩放级别,最后设置所需的缩放级别.
我在API v3中找不到类似的功能.(从v2转到v3时,这是多么令人沮丧的经历)
我真的必须使用map.fitBounds()
,再次map.getZoom()
操纵setZoom()
吗?那真是太蠢了!