每一个你不满意的现在,都有一个你不努力的曾经. 网站首页 > js
‘和风天气’使用jq distpicker城市联动数据获取天气数据
发布时间:2019-11-08 16:48:47 修改时间:2019-11-08 16:59:13 阅读:6516 评论:0 0
问题点:有的城市的区级天气没有返回数据,针对获取数据使用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()
后注: 这种方法等后期官方数据填充之后就不会生效,达到预期效果。有意见或者建议欢迎留言,如需转载,请注明本站地址,谢谢。
回复列表
关键字词:code,nbsp,数据,天气,获取,ad
上一篇:css常用属性
下一篇:vue学习笔记一 基本指令