0

ユーザーが次のように選択した場合にのみ、Googleマップレイヤーを表示しようとしています:

$("#add_layer").click(function() {
    var firstLayer = new google.maps.FusionTablesLayer({
        query: {
            select: 'geometry',
            from: '1mzDdm3G8By9pbjBG3XvSUw6fppNVkYPYo0k'
          },
          map: map,
          suppressInfoWindows: true
        });
        google.maps.event.addListener(firstLayer, 'click', function(e) {
          windowControl(e, infoWindow, map);
        });
});

このコードは、$("#add_layer").click(function() 内に含まれていない場合に完全に機能しますが、クリック関数内には含まれていません。これを行うためにクリック関数を使用できない理由はありますか?

4

1 に答える 1

1

問題はマップ変数にあると思われます。クリック ハンドラーで使用するには、グローバル スコープ内にある必要があります。

onload と呼ばれる「初期化関数」で初期化すると仮定すると、次のように変更します。

 function initialize() {
  var map = new google.maps.Map(...);

に:

var map;
function initialize() {
  map = new google.maps.Map(...);
于 2013-01-14T21:25:24.993 に答える