2013-08-26 6 views
6

私の前の質問Google maps responsive resizeに従って、私はWindowsのサイズ変更に基づいて異なるズームレベルを実装したいので、自動的に別のズームレベルを適用します。Googleマップは、ウィンドウのサイズに基づいて異なるズームを設定しました

次のコードは、Windows上でマップをセンタリングするの点で完璧に動作しますが、サイズ変更、私はそれに新しいズームレベルを適用する必要があります。

var map; 
function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(40.5472,12.282715), 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
google.maps.event.addDomListener(window, "resize", function() { 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
    map.setZoom(zoom level needs to be automatically set according to window size); 
}); 
+0

おそらく最も簡単な境界を特定し、map.setCenterではなくmap.fitBoundsを使用するのが最も簡単です。 – geocodezip

+0

マップには特定のポイントが含まれている必要がありますか?あなたが提供できる他の詳細はありますか? – rsnickell

+0

マップに特定のLatLngの特定の領域が含まれている必要があり、値が上のコードで提供されていて、マーカーがこの領域に含まれています –

答えて

4

あなたは常に作成することにより、ビューになりたいエリアを構築LatLngBoundsとgeocodezipで提案されているようにmap.fitBounds()を呼び出してください。

+0

完全な地図を常に表示したい場合、LatLangBoundsは何ですか? – brandozz

+0

私は南東と北西のコーナーを選択しましたが、ブラウザのサイズを変更しているときに、ズームレベルは私が座標を超えて設定したものを公開します。 – brandozz