2012-03-28 4 views
2

Googleマップ上で画像オーバーレイをオンザフライで更新しようとしています。私は新しいオーバーレイオブジェクトを作成することができますが、それを変更する方法を理解することはできません。私は、ズーム変化にoverlayImageを変更したいが、私は機能を通してそれを渡すことはできませんoverlayImageオブジェクトにGoogleマップ:画像オーバーレイの更新

var overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

を更新することができます。私はまた、 '地図'オブジェクトでそれを見つけることができません。

google.maps.event.addListener(map, 'zoom_changed', function(overlayImage) { 

} 

ズームレベルを変更した場合、どうすればmyimage.pngを更新できますか?

答えて

3

私は、overlayImageがイベントリスナーを追加したときからスコープから外れているという問題があると思います。

テストとして、変数をグローバルに宣言し、後でその変数を割り当てます。

/* top level */ 
var overlayImage; 
... 
/* later on */ 
overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

javascriptでは、関数内の変数を渡すだけでは、以前宣言したことを拾うことはできません。もう一つ起こっていることは、イベントリスナーがイベントオブジェクトをコールバック関数の最初のパラメータとして渡していて、それをoverlayImageという名前にしていることです。そのコールバック内では、overlayImageのコンテキストは実際にはイベントオブジェクトです。

google.maps.event.addListener(map, 'zoom_changed', function(event) { 
    /* overlayImage can now be used */ 
    overlayImage.someAPIFunction(); 
} 
+0

ありがとうございます! :) –

+0

イベントオブジェクトを追加しました。 –

関連する問題