Google Maps StreetViewPanorama ошибка отображения - PullRequest
4 голосов
/ 20 января 2012

Я пытаюсь сделать уличную панораму определенного местоположения на карте.Иногда панорама хорошо работает с местоположением как положением панорамы, а в других случаях показывает только серый экран с элементами управления.Чтобы решить эту проблему, я пытаюсь использовать StreetViewService.getPanoramaByLocation ().Возвращенный LatLng из этой функции ОЧЕНЬ близок к LatLng местоположений панорам, которые уже работают, но панорама ВСЕГДА серая, когда я использую этот вход в качестве позиции.Я провел много исследований и до сих пор не могу решить проблему.

Вот мой код:

    function init() {
        var location = new google.maps.LatLng(<%=id%>);
        map = new google.maps.Map(document.getElementById("map_canvas"), {
            center: location,
            zoom: 13,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        marker = new google.maps.Marker({
            map: map,
            position: location
        });

        var client = new google.maps.StreetViewService();
        client.getPanoramaByLocation(location, 49, function(result, status) {
            if (status == "OK" )
                location = result.location.latLng;
        });
        myPano = new google.maps.StreetViewPanorama(document.getElementById("pano"), {
            position: location,
            pov: {
              pitch: -10,
              heading: 0,
              zoom: 1
            }
        });
    }

Любая помощь будет принята с благодарностью!Спасибо!

1 Ответ

5 голосов
/ 20 января 2012

Я делаю это немного иначе, чем вы. Я создаю StreetViewPanorama только в том случае, если статус 'ok'

var sv = new google.maps.StreetViewService();

sv.getPanoramaByLocation(streetViewLocation, 50, function(data, status) {
    if (status == 'OK') {
        //google has a streetview image for this location, so attach it to the streetview div
        var panoramaOptions = {
            pano: data.location.pano,
            addressControl: false,
            navigationControl: true,
            navigationControlOptions: {
                style: google.maps.NavigationControlStyle.SMALL
            }
        }; 
        var panorama = new google.maps.StreetViewPanorama(document.getElementById(strMapCanvasID), panoramaOptions);
    }
    else{
        //no google streetview image for this location, so hide the streetview div
        $('#' + strMapCanvasID).parent().hide();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...