Маркер Google Maps Streetview меняет местоположение в зависимости от точки обзора - PullRequest
1 голос
/ 25 января 2020

Я пытаюсь показать маркер карт Google в режиме спутникового просмотра и просмотра улиц одновременно. Однако маркер, размещенный на виде улицы, похоже, меняет местоположение (быть слегка смещенным) в зависимости от того, где вдоль улицы вы на него смотрите. В приведенных ниже примерах вы можете видеть, что под одним углом маркер успешно лежит на траве, а вид со спутника совпадает с видом на улицу. Однако, если я пойду по дороге на один шаг, маркер будет теперь на проезжей части, несмотря на то, что вид со спутника указывает на иное. Один и тот же маркер используется для всех примеров.

Есть мысли?

Пример: https://jsfiddle.net/6Lpgoex2/

    const startPosition = new google.maps.LatLng(33.82444502161826, -84.32112795727612);

    // Aerial view map with marker
    var locationMap = new google.maps.Map(document.getElementById('location'), {
        center: startPosition,
        zoom: 21,
        mapTypeId: 'satellite'
    });
    locationMap.setTilt(0)

    var locationMarker = new google.maps.Marker({
        position: startPosition,
        map: locationMap
    });

    // Street view map with marker
    var viewMap = new google.maps.Map(document.getElementById('view'), {
        center: startPosition,
        zoom: 14
    });
    var viewMarker = new google.maps.Marker({
        position: startPosition,
        map: viewMap,
    });

    // Update streetview to look at the marker
    var panorama = viewMap.getStreetView();
    const panoramaService = new google.maps.StreetViewService();
    panorama.setVisible(true);
    panoramaService.getPanoramaByLocation(startPosition, 100, function(streetViewPanoramaData, streetViewStatus) {
        if (streetViewStatus == "OK") {

            let heading = google.maps.geometry.spherical.computeHeading(streetViewPanoramaData.location.latLng, startPosition);
            const position = streetViewPanoramaData.location.latLng;
            panorama.setPosition(position)

            panorama.setPov({
                heading: heading,
                pitch: 0
            });

            panorama.setZoom(1); // Fix bug to make marker visible https://issuetracker.google.com/issues/35830290
            panorama.setVisible(true);
        }
    });

good example bad example

Примечание : выпуск открыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...