我正在使用Google Maps JS API在谷歌街景室內應用程序上工作。我正在使用Google Streetview上提供的全景圖片。我有時希望以編程方式改變位置,例如有人點擊小地圖上的位置時。但是,當我調用panorama.getPosition()時,我會自動重定向到不同的位置。我實際上可以看到兩次觸發position_changed事件。谷歌街景API室內panorama.setPosition()重定向到開始位置
我已經找到了這個問題的原因。這與谷歌地圖在Streetview室內使用的開始/入口位置有關。
的兩個橙色圓圈描繪了兩個可能的起點/入口點進入大樓。當將pegman放在這些圓圈上時,您將進入街景室內的建築。
看起來像這些起點存在時,Google Maps API不會讓您以編程方式將位置設置爲某個位置,而不是任何起點。它會始終將您重定向到其中一個起點。這顯然不是我想要的。
//The starting/entrance position is lat: 52.089988, lng: 5.178041
//The position I want to go to
var goToPosition = {lat: 52.0898852, lng: 5.1780344};
//Position changed EventListener
google.maps.event.addListener(panorama, 'position_changed', function() {
var newPosition = panorama.getPosition();
console.log('changed position to:', newPosition.lat(), newPosition.lng());
});
//Calling setPosition with goToPosition
panorama.setPosition(goToPosition);
//Will result in two console.logs directly printed after another:
changed position to: 52.0898852 5.1780344 //goToPosition
changed position to: 52.089988 5.178041 //starting position
的console.logs表明,它看起來像的位置被後直接互相更換兩次,結束在起始位置的位置。
我想知道是否有任何其他人遇到過這個問題,以及是否有已知的解決方法。我正在聯繫將全景圖片上傳到Google的攝影師。也許這些圖片上傳到Google並進行配置的方式有所不同。我想知道這是否可以在我的應用程序代碼中解決,或者是API問題還是預期的行爲。
謝謝!
我試過你的建議,但使用getPanorama()我得到了相同的結果。鑑於任何我確信有全景可用的座標,這將始終返回兩個起始位置之一。但是,您確實可以幫助我找到正確的解決方案。我在下面提供了我的解決方案。儘管它確實感覺有點破爛... – Theodorus