問題點:有的城市的區級天氣沒有傳回資料,針對擷取資料使用ad_code擷取。
官方解釋:
和風天氣資料都是和氣象局保持同步。
也就是氣象局沒有相關天氣資料,很難了解 不過按照國家标準行政區查詢的區域沒有天氣資料怎麼辦,雖說和風天氣的官方說明後期會補充,但是不是目前能解決的辦法,于是本人想到一個比較簡單的方法
來暫時性解決目前擷取不到個别地區天氣資料的問題,如下:
分析:
在傳輸天氣的api中location傳輸ad_code,那麼目前的ad_code不存在我們就找上一級行政區的ad_code,也就是省級ad_code來擷取(備注:這個是肯定有資料的)
不找市級的原因個人為了減少多餘請求以及代碼量(經測驗有時候市級也沒有資料還需要向上請求)
分析ad_code規則:
ad_code為6位字元串組成,前兩位“省“中間兩位“市”最後兩位“區”。預設000000
解決方法:
既然明确ad_code規則那麼擷取區級位址的時候沒有資料,那麼
我們擷取市級編碼是:“省”+“市”+“00”,
擷取省級編碼是:“省”+“00”+“00”
例如 :
香港特别行政區-香港城區-灣仔區 (ad_code為810102)
擷取不到天氣的情況下,我們擷取香港特别行政區的編碼810000
好了,思路清晰之後上代碼(截取前兩位代碼):
var address='810102';
var key = '58fe905b87b84d40b7798328d15402e4';
function getWeather(){
$.get('https://free-api.heweather.net/s6/weather/now?location='+address+
'&key='+key,'',function(data){
if(data.HeWeather6[0].status !== 'ok'){
address = address.substr(0, 2) + '0000';
getWeather()
}
})
}
getWeather()
後注: 這種方法等後期官方資料填充之後就不會生效,達到預期效果。有意見或者建議歡迎留言,如需轉載,請注明本站位址,謝謝。