2012-04-03 25 views
1

ポリゴンを選択するとインフォウィドウを開くことができません。私のコードは次のとおりです。Google Map V3 APIを使用したinfoWindowの呼び出し

// Create Polygon 
var polyline = new google.maps.Polygon({path:path, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, clickable:false}); 

// Place Polygon on Map 
polyline.setMap(map); 
map.setCenter(new google.maps.LatLng(35.910200,-84.085100)); 

// Create InfoWindow object 
var infowindow = new google.maps.InfoWindow({ 
content: ' ', 
suppressMapPan:true 
}); 

// Create Click Event for Polygon 
eventPolygonClick = google.maps.event.addListener(polyline, 'click', function() { 

    // Load Content 
    infowindow.setContent("CLICKED me"); 
    // Open Window 
    infowindow.open(map, polyline); 

}); 

多角形とそのそれぞれの内容をeventPolygonClickに変数として渡したいと思います。これは可能ですか?

答えて

3

これを試してください。clickイベントから受け取ったlatlngを使ってマーカーを作成し、それをinfowindow.open呼び出しの2番目のパラメータとして使用してください。

eventPolygonClick = google.maps.event.addListener(polyline, 'click', function(event) { 
    var marker = new google.maps.Marker({ 
     position: event.latLng 
    }); 

    infowindow.setContent("CLICKED me"); 
    infowindow.open(map, marker); 

}); 
+0

これは正解です。 Re:Heitorの答え:clickイベントはポリラインにバインドでき、渡されたイベントはポリラインのどこかのポイントになります。隠しマーカーを追加する必要はありません。ポリラインのコンテンツを使用することもできますが、その意味がわかりません。 –

+0

ありがとう、@ジャブラム。私はまだ成功していない。 http://cspc.net/neighborhoods/neighborhoods2.htmlで自分のコードを参照できますか?上記のように実装しましたが、クリックしたりエラーが投稿された場​​合は何も起こりません。 – mcmonty

+0

ポリラインをクリック可能に設定しているようです:false。ポリラインオプションからクリック可能な属性を完全に削除してみてください。それ以降はうまくいくはずです。 – javram

0

私が試した限りでは、InfoWindowのアンカーとしてポリゴンを使用することはできません。ポリゴンの内側または端のマーカーを追加してください。setVisible(false)、infowindow.open(map、marker)

ポリゴンを渡したとはっきりとわかりませんでした。私は関数(イベント)でそれを渡すためにあなたの変数 'ポリライン'を自由に使うことができると信じています。いずれのオプションを試しましたか?

関連する問題