Получение широты / lng / масштабирования / рыскания / тангажа из Google Street View
-
06-09-2019 - |
Вопрос
У меня есть карта Google и просмотр улиц на основе предоставленных координат широты / спг, масштабирования, рыскания и тангажа.Мне нужно вызвать javascript для обновления скрытого поля для каждого из этих значений всякий раз, когда какие-либо данные изменяются по сравнению с их значением по умолчанию или при нажатии кнопки.
Таким образом, всякий раз, когда карта / вид улицы увеличивается, панорамируется, наклоняется и т.д., она выводит новые детали.
Как мне вызывать функции getPOV(), yawchanged(yaw: Number), pitchchanged(pitch: Number) и zoomchanged(zoom: Number) всякий раз, когда изменяется вид улицы (аналогично moveend для карт)
Решение
Не уверен, что это лучший способ сжать это, но это работает, чтобы получить измененные детали:
GEvent.addListener(myPano, 'initialized', function(pano) {
alert("newlng: " + pano.latlng.lng() + ", newlat: " + pano.latlng.lat());
});
GEvent.addListener(myPano, 'yawchanged', function(newyaw){
alert("yawchanged: " + newyaw);
});
GEvent.addListener(myPano, 'pitchchanged', function(newpitch) {
alert("pitchchanged: " + newpitch);
});
GEvent.addListener(myPano, 'zoomchanged', function(newzoom) {
alert("zoomchanged: " + newzoom);
});
Другие советы
Обычно я обнаружил, что "moveend" - лучшее событие для использования в качестве перехвата, чтобы получить состояние карты, когда пользователь изменяет ее.Мне нужно будет посмотреть, как получить широту / lng, масштабирование, рыскание и тангаж на карте, когда у меня будет больше времени сегодня днем
// map is the instance of your GMap2
GEvent.addListener(map, 'moveend', function() {
var center = map.getCenter();
var zoom = map.getZoom();
alert([center.lat(), center.lng(), zoom].join(','));
});
Для Google maps api v3...Предполагая, что у вас уже загружена карта StreetView с именем "панорама"
google.maps.event.addListener(panorama, "pov_changed", function() {
var panoInfo = panorama.getPov();
var thePitch = panoInfo['pitch'];
var isHeading = panoInfo['heading'];
var theZoom = panoInfo['zoom'];
});