0

したがって、右クリックするとマーカーが作成されますが、マーカーをクリックすると情報ウィンドウが表示されません。ただし、コメントされたアラートは座標を示します。私は何が間違っているのでしょうか。ロジックまたは構文に問題がありますか。この問題を回避する方法が見つかりません。これが私のコードです:

   // create marker on right click
            google.maps.event.addListener(map,'rightclick', function(e) {

                    marker = new google.maps.Marker({
                    position: e.latLng,
                    map: map
                });

                alert('coord: ' + marker.getPosition().toUrlValue(3));

            });

            // display info window on marker click
            google.maps.event.addListener(marker,'click', function(event){

                infowindow =  new google.maps.InfoWindow({
                map:map, 
                content:"coordinates:"+event.latLng.toUrlValue(),
                position:event.latLng
                });

                infowindow.open(map,marker);
            });
4

2 に答える 2

1

2番目のイベントを最初のイベントと同じコンテキストに配置する必要があります。

google.maps.event.addListener(map,'rightclick', function(e) {
    var marker = new google.maps.Marker({
        position: e.latLng,
        map: map
    });

    google.maps.event.addListener(marker,'click', function(event){
        infowindow =  new google.maps.InfoWindow({
            map: map, 
            content: "coordinates:"+event.latLng.toUrlValue(),
            position: event.latLng
        });

        infowindow.open(map, marker);
    });
});

お役に立てれば。

于 2012-09-27T12:35:17.010 に答える
0

infowindow オブジェクトの open() を呼び出して情報ウィンドウを開きませんでした。マーカーをクリックするたびに初期化します。

更新しました

infowindow =  new google.maps.InfoWindow({
     map:map, 
     content:"coordinates:"+event.latLng.toUrlValue()
});

// display info window on marker click
google.maps.event.addListener(marker, 'click', function(event) {
   infowindow.setPosition(event.latLng);
   infowindow.open(marker);
});

このコードを試してください

https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows

于 2012-09-27T11:42:25.613 に答える