2
我無法觸發嵌入在infowindow中的Streetview中的pano_change
事件。每次用戶在Streetview infowindow中導航時,我需要獲取對象StreetViewPanorama
的陣列getLinks()
和getPosition()
。它被聲明如下。我真的不明白爲什麼(它適用於marker和infowindow上的事件)。無法在街景視圖中觸發事件
//code here
var contentString = '<input type="button" value="Grab this picture" onClick="captureImage()" /> <div id="content" style="width:200px;height:200px;"></div>';
//code here
var infowindow = new google.maps.InfoWindow({
content: contentString
});
//code here//
google.maps.event.addListener(infowindow, 'domready', function() {
if (pano != null) {
pano.unbind("position");
pano.setVisible(false);
}
pano = new google.maps.StreetViewPanorama(document.getElementById("content"), {
navigationControl: true,
navigationControlOptions: {style: google.maps.NavigationControlStyle.ANDROID},
enableCloseButton: false,
addressControl: false,
linksControl: false
});
pano.bindTo("position", marker);
pano.setVisible(true);
});
它適用於2'google.maps.event.addListener'。第二個是這樣的:google.maps.event.addListener(pano,'links_changed',function(){google.maps.event.addListener(pano,'position_changed',function(){}); var myPosition = this.getPosition(); alert(myPosition);});然後,我可以請求我的新位置,也可以使用'var panoID = this.getPano();'而不是包含tile信息(我需要創建圖像URL)的'StreetViewTileData'對象來創建新的panoID。我想我首先需要從'StreetViewPanoramaData'請求'tiles'屬性。那是對的嗎? – Florent
我不認爲你應該疊加addListeners。它們應該是順序的,否則第二個可能永遠不會發生。更新上面的答案以更清晰地顯示。 – dda
謝謝你的工作正常。我嘗試檢查getLinks()返回的值是什麼,但數組似乎是空的。 '對於(var i in newLinks){alert(newLinks [i]);}'除了[object Object]兩次顯示不是非常重要的信息。你不覺得它應該正常地返回屬性'description','handling'和'pano'嗎? (如https://developers.google.com/maps/documentation/javascript/reference?hl=fr#StreetViewLink所示) – Florent