2

このコードが欲しい

   google.maps.event.addListener(map, 'click', function(event) {
      var marker = new google.maps.Marker({
      position: event.latLng
   }); 
      var outsideContent = "my content";
       infowindow.setContent(outsideContent);
      infowindow.open(map, marker);
      });

オーバーレイ/ポリゴンが存在しない場所でマップがクリックされた場合に情報ウィンドウを開きます。ただし、コードは実行されていません。

4

2 に答える 2

0

Javascriptでは大文字と小文字が区別されます。infoWindowとinfowindowは2つの異なるものを参照します。

infoWindow.setContent(outsideContent);
infowindow.open(map, marker);

ただし、これが実際に問題であるかどうかはわかりません(まだ空白の情報ウィンドウが表示されると思います)。もちろん、情報ウィンドウを開くためにマーカーを用意する必要はありません。たとえば、ユーザーのクリックに応じて地図に情報ウィンドウを追加する方法を示す私のブログ投稿を確認してください。

理論的には、これはあなたのために働くはずです:

<script type="text/javascript">
function initialize() {
    var myOptions = {
        zoom: 10,
        center: new google.maps.LatLng(50.820645,-0.137376),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var infowindow =  new google.maps.InfoWindow({
        content: 'my content'
    });

    google.maps.event.addListener(map, 'click', function(event) {
        infowindow.setPosition(event.latLng);
        infowindow.open(map);
    }); 
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>

問題は、他のイベントリスナー、および場合によっては進行中のKMLレイヤーに起因する可能性があります。

于 2012-05-15T13:48:45.823 に答える
0

clickマップリスナーを定義した場所に問題があるようです。generateInfoWindow関数内にあり、関数から呼び出されたように見えzoomtoaddressます。

関数でマップを作成する場所の横にそのリスナー設定を移動する場合は、マップがクリックされintializeたときにを開くとよいと思います。InfoWindow

function initialize() {
    // ...
    map = new google.maps.Map(document.getElementById('map_canvas'), options);

    // Move your event listener definition right here:
    google.maps.event.addListener(map, 'click', function(event) {
        var marker = new google.maps.Marker({ position: event.latLng }); 
        var outsideContent = "outside content replaced for brevity";
        infowindow.setContent(outsideContent);    //include var name correction
        infowindow.open(map, marker);
    });

    //the rest of initialize...
}

また、イベントリスナーで作成しているマーカーを表示する場合は、のmapプロパティも渡す必要がありMarkerOptionsます。マーカーを表示したくないようですので、省略しました-

于 2012-05-15T14:33:55.447 に答える