1

突然之間,我似乎從Google Maps JavaScript API獲取不準確的狀態代碼。例如,使用此代碼:StreetViewService getPanorama方法報告LatLng巴黎的錯誤狀態代碼

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,這個位置也沒有可用的pano。手動訪問Google地圖latLng證明了這一點。谷歌確實有該地點的衛星圖像,但不是街景全景圖。

此代碼用於工作,所以我很困惑到底發生了什麼。爲什麼當panoID和latLng指向無圖像時,API爲此位置返回OK pano狀態?

更新: 我希望任何確認我的發現對其他人都是一樣的(例如,這不是我做錯的事),以及任何變通辦法的想法。我的應用程序是爲街道位置提供靜態街景圖像的應用程序,但如果沒有可用的街景圖像,我會轉移到衛星。我使用getPanorama()狀態來確定要採取的方向。

+0

這看起來並不像一個有效的全景ID:'F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A' – geocodezip

+0

這就是全景ID的API讓我對那個的latLng。是否有一些檢查/驗證ID的替代方法? – mix

+0

這是正確的地方:[fiddle](http://jsfiddle.net/b4pzs6dn/)?如果是這樣,你有URL編碼的URL? – geocodezip

回答

1

Street View Image Metadata API可以讓你查詢街景全景圖的給定位置處的可用性,它只會返回街景圖片API中實際可用的全景圖。這會讓你擺脫Issue 10335

位置可以通過地址或latlng指定。如果找到全景圖,則響應將包含要在Street View Image API請求中使用的全景圖ID。這些元數據查詢是免費的。

0

有公共問題跟蹤一個單獨的功能要求,以實現與街景圖像API的全景ID喜歡F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A訪問全景:

https://issuetracker.google.com/issues/35829459

如果你有興趣在此功能,請爲要添加投票的功能請求添加明星。

UPDATE

,我前面提到的,現在被標記爲固定的功能要求。

Google通過街景圖像API實現了對用戶生成內容的訪問。但是,在此過程中,pano ID格式已更改。

例如,您提到了pano ID F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A

現在此全景圖新的全景ID是 CAMSRi0yZVJrR09PREhaZy9WdEtaN0VHZWVwSS9BQUFBQUFBQURMWS9Gdmh3M0hlVGZYY0FWcTB3dUh4cTIyTG5vVHRwZVV4MkE.

您可以輕鬆地前一張全景相片的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