2015-01-21 145 views
-1

我正在繪製一組面向Google地圖的多邊形,並且希望在點擊它時在每個中心彈出InfoWindow彈出窗口。在Google地圖中設置InfoWindow位置

function attach_info_window(polygon, centroid, title){ 
    var info_window = new google.maps.InfoWindow({ 
     content: title, 
     position: { lat: centroid[0], lng: centroid[1] } 
    }); 

    google.maps.event.addListener(polygon, 'click', function() { 
     info_window.open(map, this); 
    }); 
    } 

問題是,窗戶每次都出現在西北角。 'position'參數似乎完全被忽略。我也試着設置上點擊的位置

event.latLng 

但是,返回undefined,即使API文檔指定它,這樣也不行。奇怪的是,如果我使用Marker而不是Polygons,它就可以正常工作。

+1

那是什麼心?它只是一個數組[0]和[1]?但真正的問題可能是:「位置:...」需要Google地圖點。試試這個:position:new google.maps.LatLng(centroid [0],centroid [1]) – 2015-01-21 10:38:13

+0

爲什麼你不通過一個標記而不是第二個參數與info_window.open(map,this) - > info_window.open (map,new new google.maps.Marker({...})在centroid和LatLng-Object的幫助下設置標記的位置,在這個例子中也使用了infowindow的開放方法:https:// developers .google.com /地圖/文檔/ JavaScript的/示例/信息窗口-簡單?HL =德 – Blauharley 2015-01-21 11:12:26

回答

0

我通過刪除的open()

第二個參數
info_window.open(map) 

的偉大工程,解決了這個。我傳遞「this」是爲了將它綁定到許多特定的多邊形中。我還是不明白,爲什麼這個作品,既不

info_window.open(map, poly) 

也不

info_window.open(map, this) 

工作

0

此:

info_window.open(map, this); 

不會爲任何東西,但谷歌工作。 maps.Marker。 InfoWindow.open的第二個參數只能是google.maps.Marker,Polygon或Polyline在這裏不起作用。

documentation 「在覈心API,唯一的錨是標記類。不過,錨點可以是暴露了一個經緯度位置屬性的任何MVCObject」