获取Google StreetView API的POV

Ben*_*ong 36 google-maps google-street-view

我目前正在使用谷歌街景全景嵌入,我想获得特定地址的POV(更具体地说是标题).

Google通过maps.google.com执行此操作,在这里,如果有地址,它会让您进入街景,并且将面向正确的方向.但是,我似乎无法找到/找到通过API查找POV标题的方法的文档.

我可以让街景嵌入工作正常LatLng,但相机通常面向错误的方向.有任何想法吗?

编辑:清晰度

我想设置POV,但我不知道将它设置为什么值......

man*_*bkk 41

所需地址的latLng和全景位置的latLng(街景车从拍摄图像的位置)不一样.据我所知,API没有在地址latlng的正确方向上设置标题,您必须自己设置它.

这是我做到了,我用了StreetViewService找到最近的全景拍摄使用,然后计算出过氧化值使用computeHeading法航向这里

  • 太棒了,我正在寻找的答案.有关实现的更多信息:您需要加载几何库:使用参数libraries = geometry.如果使用getPanoramaByLocation(),则在回调函数中,您将从数据对象中获取街景汽车位置的LatLng对象:var carLatLng = data.location.latLng; 并使用它来对象目标的LatLng对象来计算标题:var heading = google.maps.geometry.spherical.computeHeading(carLatLng,targetLatLng); 与setPov()一起使用 (15认同)

vin*_*nay 34

manubkk说的是,我使用以下代码来获得正确的SV标题

var $this = $(this),
  _lat = $this.data("lat"),
  _lng = $this.data("lng"),
  streetViewMaxDistance = 100;          

var point = new google.maps.LatLng(_lat,_lng);
var streetViewService = new google.maps.StreetViewService();
var panorama = spaces.map.map.getStreetView();

// We get the map's default panorama and set up some defaults.
    // Note that we don't yet set it visible.


//panorama = spaces.map.map.getStreetView();

streetViewService.getPanoramaByLocation(point, streetViewMaxDistance, function (streetViewPanoramaData, status) {

    if(status === google.maps.StreetViewStatus.OK){

      var oldPoint = point;
          point = streetViewPanoramaData.location.latLng;

        var heading = google.maps.geometry.spherical.computeHeading(point,oldPoint);            

        panorama.setPosition(point);
        panorama.setPov({
           heading: heading,
            zoom: 1,
            pitch: 0
        });
        panorama.setVisible(true);

    }else{
      $this.text("Sorry! Street View is not available.");
        // no street view available in this range, or some error occurred
    }
});
Run Code Online (Sandbox Code Playgroud)