【发布时间】:2015-11-28 12:39:03
【问题描述】:
我正在使用 Google Maps JS API 开发 Google Streetview 室内应用程序。我正在使用 Google Streetview 上提供的全景图片。我有时想以编程方式更改位置,例如当有人单击小地图中的位置时。但是,当我调用panorama.getPosition() 时,我会自动被重定向到不同的位置。我实际上可以看到 position_changed 事件被触发了两次。
我已经找到了这个问题的原因。它与 Google 地图用于 Streetview Indoor 的起始/入口位置有关。
两个橙色圆圈描绘了进入建筑物的两个可能的起点/入口点。将街景小人放在这些圆圈上时,您将进入 Streetview Indoor 中的建筑物。
看起来当这些起点存在时,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 问题,甚至是预期的行为。
谢谢!
【问题讨论】:
标签: javascript google-maps google-maps-api-3 google-street-view