我有一个使用Google Maps JavaScript API V3的webapp并排显示常规googlemap和StreetView。当地图改变位置时,它会告诉街景使用StreetViewPanorama.setPosition()跟随它。
但是,当我将地图滚动到没有StreetView的地方时,街景图像会停留在最后一个位置。它的getPosition()方法返回与主映射相同的LatLng。
如何判断我是否已搬到街景无法使用的地方?
答案 0 :(得分:2)
好的,我找到了答案,如果不是 答案。
每次移动后,使用StreetViewService.getPanoramaByLocation()获取N米内最近的全景图。基于此,您可以保持原状,移动或setVisible(false)。
我使用了一个标志和一个setTimer来阻止大量不必要的getPanoramaByLocation调用,如下所示:
var check_availability_lock = false;
var check_availability = function() {
if (check_availability_lock) {
return;
}
check_availability_lock = true;
var availability_cb = function(data, status) {
check_availability_lock = false;
// console.log("status = ", status);
if (status !== 'OK') {
map.setVisible(false);
}
else {
map.setVisible(true);
}
}
setTimeout(function(){
var latlng = map.getPosition();
svc.getPanoramaByLocation(latlng, 50, availability_cb);
}, 2000);
};