私は、複数のカスタムマーカーなどを扱う非常に洗練されたマップアプリケーションを持っています。 resizeWindowという関数があり、リスナーで呼び出すと、画面が変更されるたびに、新しい境界を計算してサイズを変更してマップを再描画します。それは次のようになります。Google Maps API v3.0で強制的に再描画するにはどうすればよいですか?
window.onresize = function(event) { fitmap(); };
とサイズを変更する機能は次のとおりです。
function fitmap(id) {
var coords = [];
var newlatlng = new google.maps.LatLng(projlat, projlng);
coords.push(newlatlng);
for (var i=0; i<markers[id].length; i++) {
newlatlng = new google.maps.LatLng(markers[id][i].latitude, markers[id][i].longitude);
coords.push(newlatlng);
}
}
var bounds = new google.maps.LatLngBounds();
for (var i = 0, LtLgLen = coords.length; i < LtLgLen; i++) {
bounds.extend (coords[i]);
}
map.fitBounds(bounds);
と私は実際にウィンドウのサイズを変更する場合、これは素晴らしい作品。しかし...
私はメニューをウィンドウの右側に下っています。私はjquery.animateを使ってそのメニューを画面外に移動します。私はステップ・プロセス(または最後に一度だけ)としてfitmap関数を呼び出し、マップを再描画しません。
$('#rightSide').animate({ right:"-240px" }, {
duration:1000,
step: function(now,fx) {
fitmap();
}
});
私が読んで、この上で読んで、何が実際に変化していない場合は発生しません再描画Google MapsのAPI v3.0のの奇妙があるようですしています。この場合、使用可能なウィンドウは画面幅 - メニューから実際のフルスクリーンに変更されます。しかし再描画は起こりません。
私はgoogle.maps.event.trigger(map、 'resize')を試しました。それはどちらもうまくいかない。
Googleマップを絶対に強制的に再描画する方法はありますか?
私たちにリンクを教えてもらえますか? –
右側のメニューの左上に小さなタブがあります。 –
また、この変更によってズームが強制的に変更されるサイズにブラウザウィンドウを設定している場合は、ブラウザウィンドウが機能します。それが調整されないズーム変更が必要でないときだけです。私はまた、1段階のズームアウトとズームインを強制しましたが、それは修正されませんでした。 –