突然间,我似乎从Google Maps Javascript API获取了不准确的状态代码。例如,使用以下代码:
sv.getPanorama({
location: {lat: 35.685, lng: 139.7514},
radius: 350
}, function(data, status) {
console.log("getPano() location = "+data.location.latLng);
console.log("getPano() panoID = "+data.location.pano);
console.log("getPano() status = "+status);
});
有了这个,我得到以下输出:
new getPano() location = (35.685175, 139.75279950000004)
getPano() panoID = F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A
getPano() status = OK
当我尝试根据此数据构建请求URL时,例如:
https://maps.googleapis.com/maps/api/streetview?size=640x540&location=35.685175,139.75279950000004
或使用全景ID:
https://maps.googleapis.com/maps/api/streetview?size=640x540&pano=F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A
我得到"抱歉,我们这里没有图像。"图片。换句话说,即使状态返回OK
,此位置也没有可用的全景。手动访问此Google地图latLng
可以解决这个问题。谷歌确实有该位置的卫星图像,但没有街景视图。
这段代码过去常常有用,所以我对发生的事情感到困惑。当panoID和latLng指向无图像时,为什么API会为此位置返回OK全景状态?
更新: 我很感激任何确认,我的发现对其他人来说是相同的(例如,它不是我做错的事情),以及任何解决方法的想法。我的应用程序可以为latLng位置提取静态街景图像,但如果没有可用的街景图像,我会转移到卫星。我使用getPanorama()状态来确定要采取的方向。
答案 0 :(得分:1)
从几天前开始,google.maps.StreetViewService.getPanorama()
确实返回了无法在JavaScript API中显示的panos。
这是API中的一个问题,请在问题跟踪器上启动以获取更新:
Issue 10335: Bug: StreetViewService getPanorama() reporting incorrect status for many latLng pairs
答案 1 :(得分:1)
新的Street View Image Metadata API可让您查询指定位置的街景全景图的可用性,并且只会返回街景图像API中实际可用的全景图。这将使你摆脱Issue 10335。
地点可以通过地址或latlng指定。如果找到全景图,则响应将包含要在街景图像API请求中使用的全景ID。这些元数据查询是免费的。
答案 2 :(得分:0)
公共问题跟踪器中有一项单独的功能请求,可以在街景图像API中使用F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A
等全景ID访问全景图:
https://issuetracker.google.com/issues/35829459
如果您对此功能感兴趣,请将功能请求加注星标以添加您的投票。
<强>更新强>
我之前提到的功能请求现在标记为已修复。
Google通过街景图片API实现了对用户生成内容的访问。但是,在此过程中已更改全景ID格式。
例如,您提到了全景ID
F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A
。
现在这个全景图的新全景ID是
CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.
您可以使用免费的街景图像元数据请求轻松地将之前的全景ID转换为新的ID,并且不会消耗您的配额:
https://maps.googleapis.com/maps/api/streetview/metadata?pano=F%3A-2eRkGOODHZg%2FVtKZ7EGeepI%2FAAAAAAAADLY%2FFvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A&key=YOUR_API_KEY
{
"copyright":"© Alberto Saito","date":"2016-02",
"location":{
"lat":35.685175,
"lng":139.7527995
},"pano_id":"CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.",
"status":"OK"
}
现在应用新的全景ID并享受:
https://maps.googleapis.com/maps/api/streetview?pano=CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.&size=600x400&key=YOUR_API_KEY