Я пытаюсь показать маркер карт 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);
}
});
Примечание : выпуск открыт.