突然之间,我似乎从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或者使用pano ID:
https://maps.googleapis.com/maps/api/streetview?size=640x540&pano=F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A我得到的是“对不起,我们这里没有图像。”图像。换句话说,即使状态返回为OK,在此位置也没有可用的pano。手动访问谷歌地图以获取此latLng证明了这一点。谷歌确实有该地点的卫星图像,但没有街景全景图。
这段代码过去是可以工作的,所以我搞不清到底是怎么回事。当panoID和latLng指向无图像时,为什么接口返回此位置的OK全景状态?
更新:如果能确认我的发现对其他人也是一样的(例如,这不是我做错的事情),以及任何解决办法的想法,我将不胜感激。我的应用程序可以拉出latLng位置的静态街景图片,但如果没有可用的街景图片,我会转到卫星上。我使用getPanorama()状态来确定采用哪个方向。
发布于 2016-08-29 14:23:48
因为几天前,google.maps.StreetViewService.getPanorama()确实返回了不能在JavaScript应用程序接口中显示的panos。
这是API中的一个问题,请在问题跟踪器上启动它以获取更新:
Issue 10335: Bug: StreetViewService getPanorama() reporting incorrect status for many latLng pairs
发布于 2016-11-25 19:19:04
新的Street View Image Metadata应用编程接口将允许您查询给定位置的街景全景图的可用性,并且它将只返回街景图像应用编程接口中实际可用的全景图。这会让你摆脱Issue 10335。
位置可以通过地址或latlng来指定。如果找到全景图,则响应将包括全景ID,以在Street View Image API请求中使用。这些元数据查询是免费的。
发布于 2017-04-15 21:58:00
在公共问题跟踪器中有一个单独的功能请求,以允许访问街景图像应用编程接口中具有pano ID的全景图,如F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A:
https://issuetracker.google.com/issues/35829459
如果您对此功能感兴趣,请启动功能请求以添加您的投票。
更新
我之前提到的功能请求现在被标记为Fixed。
Google通过街景图像API实现了对用户生成内容的访问。但是,在此过程中,pano ID格式已更改。
例如,您提到了pano ID F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A。
现在,此全景图的新全景ID为CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.
您可以使用街景图像元数据请求轻松地将以前的pano 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"
}现在应用新的pano ID并享受:
https://maps.googleapis.com/maps/api/streetview?pano=CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.&size=600x400&key=YOUR_API_KEY
https://stackoverflow.com/questions/39033481
复制相似问题