Проверьте наличие StreetView с помощью Google Maps JavaScript API V3 - PullRequest
5 голосов
/ 29 сентября 2010

У меня есть веб-приложение, которое использует Google Maps JavaScript API V3 для отображения обычной карты Google и StreetView рядом.Когда карта меняет положение, она сообщает виду улицы, чтобы он следовал за ним, используя StreetViewPanorama.setPosition ().

Однако, когда я прокручиваю карту в какое-то место, где StreetView недоступно, изображение вида улицы остается в последнем месте,Его метод getPosition () возвращает тот же LatLng, что и основная карта.

Как узнать, переместился ли я в место, где StreetView недоступно?

1 Ответ

2 голосов
/ 29 сентября 2010

ОК, я нашел ответ, если нет ответ .

После каждого перемещения используйте StreetViewService.getPanoramaByLocation (), чтобы получить ближайшую панораму в пределах N метров. Исходя из этого, вы можете оставаться там, где вы есть, двигаться или установить Visible (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);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...