‘和风天气’使用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

6499293828c08ff195068aa7d72782c.png

好了,思路清晰之后上代码(截取前两位代码):

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()

02aaafc417f9cf15e35d6639fdbdf9b.png

后注: 这种方法等后期官方数据填充之后就不会生效,达到预期效果。有意见或者建议欢迎留言,如需转载,请注明本站地址,谢谢

猜你喜欢

转载自blog.csdn.net/qq_27751965/article/details/103024986