ts实例应用之通过城市的citycode获取天气数据(逻辑)
2017-09-29 11:09
633 查看
授人以鱼不如授人以渔
这里只讲逻辑(伪代码),不写代码。
需求:获取天气数据
则需要:city cityid citycode
第一步:获取所有的地区信息,这样就可以城市级联了
citycode:城市编号,如果是省份则该属性为空;
city:城市的名称;
cityid:城市id
parentid:表示它的上一级的cityid,为0,则代表没有上一级,则是直辖市或者省份;
若一个地区对象恰好citycode为空,且parentid为0,则该对象一定是省份
例如:
安徽是省所以citycode为空;安庆是安徽的市,所以安庆的parentid是安徽的cityid。
第二步:通过传入parentid获取所有parentid相同的地区信息
第三步:通过城市名获取citycode
第四步:返回正确格式的url
第五步:通过城市对象获取天气数据
这里只讲逻辑(伪代码),不写代码。
需求:获取天气数据
//条件: var appkey='xxxxxx'; var url='https://way.jd.com/jisuapi/weather?city=xxx&cityid=xxxx&citycode=xx&appkey=appkey';
则需要:city cityid citycode
第一步:获取所有的地区信息,这样就可以城市级联了
var url='https://way.jd.com/jisuapi/weather1?appkey=9b066f875202e509f662b86efdc990d8'; //将获取到的信息存到一个districts变量里面 var districts=http.get(url); //通常一个城市对象的数据结构是这样的 district={ citycode:'101010100', city:'北京', cityid:'1', parentid:'0' }
citycode:城市编号,如果是省份则该属性为空;
city:城市的名称;
cityid:城市id
parentid:表示它的上一级的cityid,为0,则代表没有上一级,则是直辖市或者省份;
若一个地区对象恰好citycode为空,且parentid为0,则该对象一定是省份
例如:
province={ city={ "citycode":"", "citycode":"101220601" "city":"安徽", "city":"安庆", "cityid":"2", "cityid":"35", "parentid":"0" "parentid":"2" }, }
安徽是省所以citycode为空;安庆是安徽的市,所以安庆的parentid是安徽的cityid。
第二步:通过传入parentid获取所有parentid相同的地区信息
传入parenid=0,则是获取所有的省份、直辖市 传入parentid为81,即获取cityid=81(惠州),所有的县、区
getSubdistricts(districtid: string): Promise<Array<DistrictInfo>> { return new Promise((resolve, reject) => { this.getDistrictInfos() .then(() => { this.wxDistrictInfos.forEach( districtinfo => { if (districtinfo.parentid === districtid) { subdistricts.push(districtinfo); } }); resolve(subdistricts); }) .catch(() => reject() ); });
第三步:通过城市名获取citycode
getCityObj(cityName){ //.... var obj={ "citycode":"xxx", "city":"xxx", "cityid":"xxx", "parentid":"xxx" } return obj; }
第四步:返回正确格式的url
getUrl( cityObj ){ return 'https://way.jd.com/jisuapi/weather? + 'city=' + district.city + '&cityid=' + district.cityid + '&citycode=' + district.citycode + '&appkey=9b066f875202e509f662b86efdc990d8'; }
第五步:通过城市对象获取天气数据
getWeather( cityObj){ this.get( getUrl (cityObj).then(res=>{ console.log( res) } }
相关文章推荐
- 【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据
- 想在自己的android应用中获得当天的天气情况,这该怎么做呢?不用担心。中国国家气象局提供了获取所在城市天气预报信息接口。通过这个接口,我们就可以获取天气信息了。
- Android使用"中国天气网"API数据通过城市名称获取天气情况
- 用"http://m.weather.com.cn/data/" + cityCode + ".html"获取城市天气
- 用"http://m.weather.com.cn/data/" + cityCode + ".html"获取城市天气
- Android使用"中国天气网"API数据通过城市名称获取天气情况
- 简单应用:通过经纬度获取Google天气数据
- WPF实例:通过WebServices获取城市的天气情况
- Ajax 通过城市名获取数据(全国天气预报API)
- 如何通过URL获取天气PM2.5的数据,返回json
- 通过api使用HttpURLConnection 获取返回天气数据。
- QuickFlow-如何通过QFD and ExecuteCode获取其他列表数据
- C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市
- 安卓查询当前所在地天气及查询地区(城市)代码cityCode localCode
- js实例应用之获取本地地址及天气的几种方式
- C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法
- axis2通过城市名称调用.net写的asmx WebService查询天气实例 .
- 微信小程序----map组件实现(获取定位城市天气或者指定城市天气数据)
- 城市天气数据获取接口
- 通过服务器获取终端上应用软件更新数据的方法和系统