私が実装した機能である:
/**
* Returns the zoom level at which the given rectangular region fits in the map view.
* The zoom level is computed for the currently selected map type.
* @param {google.maps.Map} map
* @param {google.maps.LatLngBounds} bounds
* @return {Number} zoom level
**/
function getZoomByBounds(map, bounds){
var MAX_ZOOM = map.mapTypes.get(map.getMapTypeId()).maxZoom || 21 ;
var MIN_ZOOM = map.mapTypes.get(map.getMapTypeId()).minZoom || 0 ;
var ne= map.getProjection().fromLatLngToPoint(bounds.getNorthEast());
var sw= map.getProjection().fromLatLngToPoint(bounds.getSouthWest());
var worldCoordWidth = Math.abs(ne.x-sw.x);
var worldCoordHeight = Math.abs(ne.y-sw.y);
//Fit padding in pixels
var FIT_PAD = 40;
for(var zoom = MAX_ZOOM; zoom >= MIN_ZOOM; --zoom){
if(worldCoordWidth*(1<<zoom)+2*FIT_PAD < $(map.getDiv()).width() &&
worldCoordHeight*(1<<zoom)+2*FIT_PAD < $(map.getDiv()).height())
return zoom;
}
return 0;
}
http://stackoverflow.com/questions/6048975/google-maps-v3-how-to-calculate-the-zoom-を見てみましょう所与のレベルのために –
ありがとう@ Dr.Molle。それはあなたのために自分の関数を書く必要がありますので、私は上記の愚かな解決策を好む哀れみです。しかし、私は[別の問題](http://stackoverflow.com/questions/9843732/how-to-affect-the-grace-margin-of-map-fitbounds)、あなたのリンクを使用していただきありがとうございます! – TMS
+1 - 私はあなたがより多くの議決権を受け取っていないのに驚いています。 –