从Google街景中获取lat / lng / zoom / yaw / pitch

时间:2009-04-08 14:59:45

标签: javascript google-maps google-street-view

我有基于提供的lat / lng坐标,缩放,偏航和音高的Google地图和街景视图。每当任何细节从默认值或单击按钮更改时,我都需要调用javascript来更新每个值的隐藏字段。

因此,每当地图/街道视图放大,平移,倾斜等时,它都会输出新的细节。

每当街景视图发生变化时,如何调用函数getPOV(),yawchanged(yaw:Number),pitchchanged(pitch:Number)和zoomchanged(zoom:Number)(类似于地图的moveend)

3 个答案:

答案 0 :(得分:4)

不确定压缩此方法的最佳方法,但这可以获取更改的详细信息:

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);
});

答案 1 :(得分:2)

我通常发现“moveend”是用作钩子的最佳事件,用于在用户更改时获取地图的状态。当我今天下午有更多时间的时候,我需要查看如何从地图中获取lat / lng,zoom,yaw和pitch

// 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(','));
});

答案 2 :(得分:2)

对于google maps api v3 ...假设你已经加载了一个名为“panorama”的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'];
});