突然之間,我似乎從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()狀態來確定要採取的方向。
這看起來並不像一個有效的全景ID:'F:-2eRkGOODHZg/VtKZ7EGeepI/AAAAAAAADLY/Fvhw3HeTfXcAVq0wuHxq22LnoTtpeUx2A' – geocodezip
這就是全景ID的API讓我對那個的latLng。是否有一些檢查/驗證ID的替代方法? – mix
這是正確的地方:[fiddle](http://jsfiddle.net/b4pzs6dn/)?如果是這樣,你有URL編碼的URL? – geocodezip