2012-05-11 22 views
1

我希望在Google地方信息中獲得的20個特定對象中,打開具體的InfoWindow打開特定的InfoWindow,無需點擊,也無需在Google地圖V3中上傳或初始化地點

首先我需要確定打開哪一個。所以,一旦我知道要打開的那個,我想通過Google Places商業ID - >place.id打開它。

所以,到目前爲止,我已經被標記順序(我)像這樣測試它:

openInfoWindowBy(i){ 
    infowindow.open(map,i); 
} 

我剛打電話:openInfoWindowBy(1);InfoWindow 1,沒開。點擊事件工作正常:

google.maps.event.addListener(markers[i], 'click', getDetails(placesArr[i], i)); 
markers[i].setMap(map); 
addplace(placesArr[i], i); 

我在做什麼錯?有沒有可能通過place.id打開它?

回答

1

請看Google地圖developer's guide的這一部分中的sample。 Google Maps API V3中的Places庫會將結果返回到數組中,因此在循環訪問數組時,應該使用索引值,而不是place.id來循環/添加/重新標記標記。

也就是說,您現有的openInfoWindowBy代碼引用索引,而不是markers數組中的索引。看來,它應該是這樣的:

openInfoWindowBy(i){ 
    infowindow.open(map,markers[i]); 
} 

你需要做的第二個參數markers[1]

+0

感謝安德烈,我已經試過這樣: 功能openInfoWindowBy(我){ infowindow.open(地圖上,標記[一世]); } setTimeout('openInfoWindowBy(2)',3000); 沒有成功,有什麼想法爲什麼? – Sebastian

+0

爲什麼'openInfoWindowBy(2)'在引號中?你正在調用一個函數,而不是可執行代碼(比如說'alert()'),所以你不需要用引號括起參數。另外,2是一個有效的索引? – andresf

相關問題