Получение широты/долготы/масштаба/рыскания/тангажа из Google Street View

У меня есть карта Google и просмотр улиц на основе предоставленных координат широты / долготы, масштабирования, рыскания и шага. Мне нужно вызвать javascript для обновления скрытого поля для каждого из этих значений всякий раз, когда какие-либо детали изменяются по сравнению с их значениями по умолчанию или при нажатии кнопки.

Таким образом, всякий раз, когда изображение карты/улицы увеличивается, панорамируется, наклоняется и т. д., оно выводит новые детали.

Как вызывать функции getPOV(), yawchanged(yaw:Number), pitchchanged(pitch:Number) и zoomchanged(zoom:Number) при каждом изменении просмотра улиц (аналогично moveend для Карт)


person Peter Craig    schedule 08.04.2009    source источник


Ответы (3)


Не уверен, что лучший способ сжать это, но это работает, чтобы получить измененные детали:

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);
});
person Peter Craig    schedule 06.05.2009

Как правило, я обнаружил, что событие "moveend" лучше всего использовать в качестве ловушки для получения состояния карты, когда пользователь ее меняет. Мне нужно будет посмотреть, как получить широту / долготу, масштабирование, рыскание и шаг с карты, когда у меня будет больше времени сегодня днем.

// 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(','));
});
person howardr    schedule 08.04.2009
comment
Это отлично работает для карт, теперь мне нужен точный эквивалент moveend для просмотра улиц, чтобы выводить либо getPOV(), либо yawchanged(yaw:Number), pitchchanged(pitch:Number) и zoomchanged(zoom:Number) - person Peter Craig; 09.04.2009

Для google maps api v3... Предположим, что у вас уже загружена карта streetView с именем "panorama"

google.maps.event.addListener(panorama, "pov_changed", function() { 
   var panoInfo   = panorama.getPov();
   var thePitch   = panoInfo['pitch'];
   var isHeading  = panoInfo['heading'];
   var theZoom    = panoInfo['zoom'];
});
person Lane    schedule 02.10.2011