Google地图街景“无图像”,状态为OK

时间:2016-07-22 17:49:23

标签: google-maps-api-3 google-street-view

我一直在使用Google街景图像API,当api回应“我们没有图像”时会出现问题。我实现了以前帖子中发现的一些解决方案,主要来自detecting "we have no imagery" of google maps street view static images。这是我的代码:

var address = thisItem.addr + "," + thisItem.city + "," + thisItem.state + " " + thisItem.zip;

    var url = "https://maps.googleapis.com/maps/api/streetview?size=500x500&location=" + address + "&heading=&pitch=&key=";

    var itemLat = parseFloat(thisItem.lat);
    var itemLng = parseFloat(thisItem.lng);

    var sv = new google.maps.StreetViewService();


    sv.getPanorama({location: {lat: itemLat, lng: itemLng}, radius: 1}, processSVData);

    function processSVData(data, status) {
      if (status === google.maps.StreetViewStatus.OK) {
        console.log('status ok');
      } else {
        console.log('status not ok')
      }
    }

如果有街景,我会将网址插入img src。

因为我在url调用中使用地址而不是lat lng,而在getPanorama中使用lat lng,当图像返回“找不到图像”时,StreetViewStatus仍然可以,所以我无法设置库存图像。我还改为在url中使用lat lng,然后即使状态不正常,也会显示图像。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

Directly Accessing Street View Data

中所述

您可以向StreetViewService发起两种类型的请求:

  • 使用StreetViewPanoRequest请求,返回给定参考ID的全景数据,该参考ID唯一标识全景图。请注意,这些参考ID仅在该全景图像的生命周期内保持稳定。
  • 请求StreetViewLocationRequest这会在指定区域内搜索全景数据,但已通过LatLng

因此,对于您使用的地址,我建议您考虑使用Geocoding Service转换它们。

除此之外,这些参考资料也可能对您有所帮助