我一直在使用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,然后即使状态不正常,也会显示图像。有什么建议吗?
答案 0 :(得分:1)
如Directly Accessing Street View Data
中所述您可以向StreetViewService
发起两种类型的请求:
StreetViewPanoRequest
请求,返回给定参考ID的全景数据,该参考ID唯一标识全景图。请注意,这些参考ID仅在该全景图像的生命周期内保持稳定。StreetViewLocationRequest
这会在指定区域内搜索全景数据,但已通过LatLng
。因此,对于您使用的地址,我建议您考虑使用Geocoding Service转换它们。
除此之外,这些参考资料也可能对您有所帮助