天天看點

‘和風天氣’使用jq distpicker城市關聯資料擷取天氣資料解決方法:

問題點:有的城市的區級天氣沒有傳回資料,針對擷取資料使用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

‘和風天氣’使用jq distpicker城市關聯資料擷取天氣資料解決方法:

好了,思路清晰之後上代碼(截取前兩位代碼):

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()
           
‘和風天氣’使用jq distpicker城市關聯資料擷取天氣資料解決方法:

後注: 這種方法等後期官方資料填充之後就不會生效,達到預期效果。有意見或者建議歡迎留言,如需轉載,請注明本站位址,謝謝。

繼續閱讀