这听起来像是街景图像 API 中的一个错误。CAoSLEFGMVFpcFB3ZWxWT21OX196WVc2ajlGeE9qbGptTHFHc2RNRjBwRlYyamhw
如果我使用街景图像元数据 API 从您的示例中检查全景 ID :
https://maps.googleapis.com/maps/api/streetview/metadata?pano=CAoSLEFGMVFpcFB3ZWxWT21OX196WVc2ajlGeE9qbGptTHFHc2RNRjBwRlYyamhw&key=MY_API_KEY
我得到以下回复
{
"copyright":"© Miller Yu",
"date":"2018-11",
"location":{
"lat":35.6894875,
"lng":139.6917064
},
"pano_id":"CAoSLEFGMVFpcFB3ZWxWT21OX196WVc2ajlGeE9qbGptTHFHc2RNRjBwRlYyamhw",
"status":"OK"
}
这意味着 pano id 是有效的,它存在于 Google 数据库中,但不能通过 Street View Image API 获得。
我们可以看到这张全景图是由外部用户上传的,所以它不是典型的谷歌街景图像。我知道 Google 过去曾遇到过业务生成全景图的问题。作为参考,您可以查看 Google 问题跟踪器中的以下错误:
https://issuetracker.google.com/issues/35829459
https://issuetracker.google.com/issues/77676413
两者都被标记为固定,但在你的情况下它看起来不是真的。在这一点上,我建议再次通过他们的问题跟踪器向 Google 报告问题。
作为一种解决方法,请考虑仅请求 Google 的户外图像。source
您可以在街景全景请求中指定属性,如我的示例所示
function initialize() {
let svService = new google.maps.StreetViewService();
let tokyo = {lat: 35.6895,lng: 139.6917};
var panoRequest = {
location: tokyo,
preference: google.maps.StreetViewPreference.NEAREST,
radius: 250,
source: google.maps.StreetViewSource.OUTDOOR
};
svService.getPanorama(panoRequest, svCheck);
function svCheck(data, status) {
if (status === google.maps.StreetViewStatus.OK) {
console.log("OK for "+data.location.latLng+" at ID "+data.location.pano);
var panorama = new google.maps.StreetViewPanorama(
document.getElementById('street-view'),
{
pano: data.location.pano,
});
}
else {
console.log("STATUS NOT OK");
}
}
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#street-view {
height: 100%;
}
<div id="street-view"></div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&callback=initialize">
</script>
通过修改请求,您将获得一个全景 ID rHMU4M8-OvVuL5ALS0OlNg
。如果您使用元数据 API 检查它
https://maps.googleapis.com/maps/api/streetview/metadata?pano=rHMU4M8-OvVuL5ALS0OlNg&key=YOUR_API_KEY
您将收到以下回复
{
"copyright":"© Google",
"date":"2016-07",
"location":{
"lat":35.68943918433396,
"lng":139.6914496241509
},
"pano_id":"rHMU4M8-OvVuL5ALS0OlNg",
"status":"OK"
}
此全景图属于 Google,可与 Street View Image API 一起正常工作
https://maps.googleapis.com/maps/api/streetview?pano=rHMU4M8-OvVuL5ALS0OlNg&size=600x400&key=YOUR_API_KEY
