andorid调用天气预报

今天闲来想做个android的天气预报,百度之,谷歌的天气预报非常的多,下载demo,发现不能访问,至于

原因,你懂得。期间走了很多弯路,为了节省大家时间,就把遇到的坎一一写上。

一、API选择

简单选择后,选用新浪的API

地址:http://php.weather.sina.com.cn/xml.php?password=DJOYnieT8234jlsK&day=0&city=%B8%A3%D6%DD

(红色标记内容为城市名称的转码格式,day=0表示当前天,1表示明天 以此类推,最大为5)

因为期间又看到了http://m.weather.com.cn的API

http://m.weather.com.cn/data/101230101.html

然后悲剧就来了,鬼死神拆的认为city是城市的code。后面也就走了很多弯路,先卖个关子。

新浪天气预报的XML报文

<?xml version="1.0" encoding="UTF-8" ?> 
<!--  published at 2013-05-13 23:37:52 
  --> 
<Profiles>
<Weather>
  <city>福州</city> 
  <status1>多云</status1> 
  <status2>多云</status2> 
  <figure1>duoyun</figure1> 
  <figure2>duoyun</figure2> 
  <direction1>无持续风向</direction1> 
  <direction2>无持续风向</direction2> 
  <power1>≤3</power1> 
  <power2>≤3</power2> 
  <temperature1>28</temperature1> 
  <temperature2>20</temperature2> 
  <ssd>7</ssd> 
  <tgd1>25</tgd1> 
  <tgd2>25</tgd2> 
  <zwx>2</zwx> 
  <ktk>4</ktk> 
  <pollution>3</pollution> 
  <xcz>5</xcz> 
  <zho /> 
  <diy /> 
  <fas /> 
  <chy>1</chy> 
  <zho_shuoming>暂无</zho_shuoming> 
  <diy_shuoming>暂无</diy_shuoming> 
  <fas_shuoming>暂无</fas_shuoming> 
  <chy_shuoming>短袖衫、短裙、短裤、薄型T恤衫、敞领短袖棉衫</chy_shuoming> 
  <pollution_l>一般</pollution_l> 
  <zwx_l></zwx_l> 
  <ssd_l>偏热</ssd_l> 
  <fas_l>暂无</fas_l> 
  <zho_l>暂无</zho_l> 
  <chy_l>薄短袖类</chy_l> 
  <ktk_l>不需要开启</ktk_l> 
  <xcz_l>不适宜</xcz_l> 
  <diy_l>暂无</diy_l> 
  <pollution_s>对空气污染物扩散无明显影响</pollution_s> 
  <zwx_s>紫外线弱</zwx_s> 
  <ssd_s>天气偏热,适当调整穿衣后,仍可达到比较舒适的程度。</ssd_s> 
  <ktk_s>不需要开启空调</ktk_s> 
  <xcz_s>洗车后当日有降水、大风或沙尘天气,不适宜洗车</xcz_s> 
  <gm>1</gm> 
  <gm_l>低发期</gm_l> 
  <gm_s>环境温度较高,要提防长时间在空调环境中引发的空调病;</gm_s> 
  <yd>4</yd> 
  <yd_l>不太适宜</yd_l> 
  <yd_s>天气较热,不太适宜户外运动;</yd_s> 
  <savedate_weather>2013-05-13</savedate_weather> 
  <savedate_life>2013-05-13</savedate_life> 
  <savedate_zhishu>2013-05-13</savedate_zhishu> 
  </Weather>
  </Profiles>
View Code

XML节点说明

标签中1表示白天,2表示夜间

 

<status>

< figure>

<direction>

<power>

<temperature>

<ssd>

<ssd_l>

<ssd_s>

<tgd>

<zwx>

<zwx_l>

<zwx_s>

<ktk>

<ktk_l>

<ktk_s>

<pollution>

<pollution_l>

<pollution_s>

<xcz>

<xcz_l>

<xcz_s>

<chy>

<chy_l>

<chy_shuoming>

<gm>

<gm_l>

<gm_s>

<yd>

<yd_l>

<yd_s>

<zho>

<zho_l>

<zho_shuoming>

<diy>

<diy_l>

<diy_shuoming>

<fas>

<fas_l>

<fas_shuoming>

<savedate_weather>

<savedate_life>

<savedate_zhishu>

天气情况中文

天气情况拼音

风向

风级

温度

体感指数数值

体感度指数

体感度指数说明

体感温度

紫外线指数数值

紫外线指数

紫外线指数说明

空调指数数值

空调指数

 

空调指数说明

污染指数数值

污染物扩散条件

污染指数说明

洗车指数数值

洗车指数

洗车指数说明

穿衣指数数值

穿衣指数

穿衣说明

感冒指数数值

感冒指数

感冒指数说明

运动指数数值

运动指数

运动指数说明

 

 

 

 

 

 

 

 

 

天气预报日期

生活日期

指数日期

好不容易找到全国对应的转换表,如下

101010100=北京
101010200=海淀
101010300=朝阳
101010400=顺义
101010500=怀柔
101010600=通州
101010700=昌平
101010800=延庆
101010900=丰台
101011000=石景山
101011100=大兴
101011200=房山
101011300=密云
101011400=门头沟
101011500=平谷
101011600=八达岭
101011700=佛爷顶
101011800=汤河口
101011900=密云上甸子
101012000=斋堂
101012100=霞云岭


101020100=上海
101020200=闵行
101020300=宝山
101020400=川沙
101020500=嘉定
101020600=南汇
101020700=金山
101020800=青浦
101020900=松江
101021000=奉贤
101021100=崇明
101021101=陈家镇
101021102=引水船
101021200=徐家汇
101021300=浦东


101030100=天津
101030200=武清
101030300=宝坻
101030400=东丽
101030500=西青
101030600=北辰
101030700=宁河
101030800=汉沽
101030900=静海
101031000=津南
101031100=塘沽
101031200=大港
101031300=平台
101031400=蓟县


101040100=重庆
101040200=永川
101040300=合川
101040400=南川
101040500=江津
101040600=万盛
101040700=渝北
101040800=北碚
101040900=巴南
101041000=长寿
101041100=黔江
101041200=万州天城
101041300=万州龙宝
101041400=涪陵
101041500=开县
101041600=城口
101041700=云阳
101041800=巫溪
101041900=奉节
101042000=巫山
101042100=潼南
101042200=垫江
101042300=梁平
101042400=忠县
101042500=石柱
101042600=大足
101042700=荣昌
101042800=铜梁
101042900=璧山
101043000=丰都
101043100=武隆
101043200=彭水
101043300=綦江
101043400=酉阳
101043500=金佛山
101043600=秀山
101043700=沙坪坝


101050101=哈尔滨
101050102=双城
101050103=呼兰
101050104=阿城
101050105=宾县
101050106=依兰
101050107=巴彦
101050108=通河
101050109=方正
101050110=延寿
101050111=尚志
101050112=五常
101050113=木兰
101050201=齐齐哈尔
101050202=讷河
101050203=龙江
101050204=甘南
101050205=富裕
101050206=依安
101050207=拜泉
101050208=克山
101050209=克东
101050210=泰来
101050301=牡丹江
101050302=海林
101050303=穆棱
101050304=林口
101050305=绥芬河
101050306=宁安
101050307=东宁
101050401=佳木斯
101050402=汤原
101050403=抚远
101050404=桦川
101050405=桦南
101050406=同江
101050407=富锦
101050501=绥化
101050502=肇东
101050503=安达
101050504=海伦
101050505=明水
101050506=望奎
101050507=兰西
101050508=青冈
101050509=庆安
101050510=绥棱
101050601=黑河
101050602=嫩江
101050603=孙吴
101050604=逊克
101050605=五大连池
101050606=北安
101050701=大兴安岭
101050702=塔河
101050703=漠河
101050704=呼玛
101050705=呼中
101050706=新林
101050707=阿木尔
101050708=加格达奇
101050801=伊春
101050802=乌伊岭
101050803=五营
101050804=铁力
101050805=嘉荫
101050901=大庆
101050902=林甸
101050903=肇州
101050904=肇源
101050905=杜蒙
101051002=七台河
101051003=勃利
101051101=鸡西
101051102=虎林
101051103=密山
101051104=鸡东
101051201=鹤岗
101051202=绥滨
101051203=萝北
101051301=双鸭山
101051302=集贤
101051303=宝清
101051304=饶河


101060101=长春
101060102=农安
101060103=德惠
101060104=九台
101060105=榆树
101060106=双阳
101060201=吉林
101060202=舒兰
101060203=永吉
101060204=蛟河
101060205=磐石
101060206=桦甸
101060207=烟筒山
101060301=延吉
101060302=敦化
101060303=安图
101060304=汪清
101060305=和龙
101060306=天池
101060307=龙井
101060308=珲春
101060309=图们
101060310=松江
101060311=罗子沟
101060312=延边
101060401=四平
101060402=双辽
101060403=梨树
101060404=公主岭
101060405=伊通
101060406=孤家子
101060501=通化
101060502=梅河口
101060503=柳河
101060504=辉南
101060505=集安
101060506=通化县
101060601=白城
101060602=洮南
101060603=大安
101060604=镇赉
101060605=通榆
101060701=辽源
101060702=东丰
101060801=松原
101060802=乾安
101060803=前郭
101060804=长岭
101060805=扶余
101060901=白山
101060902=靖宇
101060903=临江
101060904=东岗
101060905=长白


101070101=沈阳
101070102=苏家屯
101070103=辽中
101070104=康平
101070105=法库
101070106=新民
101070107=于洪
101070108=新城子
101070201=大连
101070202=瓦房店
101070203=金州
101070204=普兰店
101070205=旅顺
101070206=长海
101070207=庄河
101070208=皮口
101070209=海洋岛
101070301=鞍山
101070302=台安
101070303=岫岩
101070304=海城
101070401=抚顺
101070403=清原
101070404=章党
101070501=本溪
101070502=本溪县
101070503=草河口
101070504=桓仁
101070601=丹东
101070602=凤城
101070603=宽甸
101070604=东港
101070605=东沟
101070701=锦州
101070702=凌海
101070703=北宁
101070704=义县
101070705=黑山
101070706=北镇
101070801=营口
101070802=大石桥
101070803=盖州
101070901=阜新
101070902=彰武
101071001=辽阳
101071002=辽阳县
101071003=灯塔
101071101=铁岭
101071102=开原
101071103=昌图
101071104=西丰
101071201=朝阳
101071202=建平
101071203=凌源
101071204=喀左
101071205=北票
101071206=羊山
101071207=建平县
101071301=盘锦
101071302=大洼
101071303=盘山
101071401=葫芦岛
101071402=建昌
101071403=绥中
101071404=兴城


101080101=呼和浩特
101080102=土默特左旗
101080103=托克托
101080104=和林格尔
101080105=清水河
101080106=呼和浩特市郊区
101080107=武川
101080201=包头
101080202=白云鄂博
101080203=满都拉
101080204=土默特右旗
101080205=固阳
101080206=达尔罕茂明安联合旗
101080207=石拐
101080301=乌海
101080401=集宁
101080402=卓资
101080403=化德
101080404=商都
101080405=希拉穆仁
101080406=兴和
101080407=凉城
101080408=察哈尔右翼前旗
101080409=察哈尔右翼中旗
101080410=察哈尔右翼后旗
101080411=四子王旗
101080412=丰镇
101080501=通辽
101080502=舍伯吐
101080503=科尔沁左翼中旗
101080504=科尔沁左翼后旗
101080505=青龙山
101080506=开鲁
101080507=库伦旗
101080508=奈曼旗
101080509=扎鲁特旗
101080510=高力板
101080511=巴雅尔吐胡硕
101080512=通辽钱家店
101080601=赤峰
101080602=赤峰郊区站
101080603=阿鲁科尔沁旗
101080604=浩尔吐
101080605=巴林左旗
101080606=巴林右旗
101080607=林西
101080608=克什克腾旗
101080609=翁牛特旗
101080610=岗子
101080611=喀喇沁旗
101080612=八里罕
101080613=宁城
101080614=敖汉旗
101080615=宝过图
101080701=鄂尔多斯
101080703=达拉特旗
101080704=准格尔旗
101080705=鄂托克前旗
101080706=河南
101080707=伊克乌素
101080708=鄂托克旗
101080709=杭锦旗
101080710=乌审旗
101080711=伊金霍洛旗
101080712=乌审召
101080713=东胜
101080801=临河
101080802=五原
101080803=磴口
101080804=乌拉特前旗
101080805=大佘太
101080806=乌拉特中旗
101080807=乌拉特后旗
101080808=海力素
101080809=那仁宝力格
101080810=杭锦后旗
101080811=巴盟农试站
101080901=锡林浩特
101080902=朝克乌拉
101080903=二连浩特
101080904=阿巴嘎旗
101080905=伊和郭勒
101080906=苏尼特左旗
101080907=苏尼特右旗
101080908=朱日和
101080909=东乌珠穆沁旗
101080910=西乌珠穆沁旗
101080911=太仆寺旗
101080912=镶黄旗
101080913=正镶白旗
101080914=正兰旗
101080915=多伦
101080916=博克图
101080917=乌拉盖
101080918=白日乌拉
101080919=那日图
101081000=呼伦贝尔
101081001=海拉尔
101081002=小二沟
101081003=阿荣旗
101081004=莫力达瓦旗
101081005=鄂伦春旗
101081006=鄂温克旗
101081007=陈巴尔虎旗
101081008=新巴尔虎左旗
101081009=新巴尔虎右旗
101081010=满洲里
101081011=牙克石
101081012=扎兰屯
101081014=额尔古纳
101081015=根河
101081016=图里河
101081101=乌兰浩特
101081102=阿尔山
101081103=科尔沁右翼中旗
101081104=胡尔勒
101081105=扎赉特旗
101081106=索伦
101081107=突泉
101081108=霍林郭勒
101081201=阿拉善左旗
101081202=阿拉善右旗
101081203=额济纳旗
101081204=拐子湖
101081205=吉兰太
101081206=锡林高勒
101081207=头道湖
101081208=中泉子
101081209=巴彦诺尔贡
101081210=雅布赖
101081211=乌斯太
101081212=孪井滩


101090101=石家庄
101090102=井陉
101090103=正定
101090104=栾城
101090105=行唐
101090106=灵寿
101090107=高邑
101090108=深泽
101090109=赞皇
101090110=无极
101090111=平山
101090112=元氏
101090113=赵县
101090114=辛集
101090115=藁城
101090116=晋洲
101090117=新乐
101090201=保定
101090202=满城
101090203=阜平
101090204=徐水
101090205=唐县
101090206=高阳
101090207=容城
101090208=紫荆关
101090209=涞源
101090210=望都
101090211=安新
101090212=易县
101090213=涞水
101090214=曲阳
101090215=蠡县
101090216=顺平
101090217=雄县
101090218=涿州
101090219=定州
101090220=安国
101090221=高碑店
101090301=张家口
101090302=宣化
101090303=张北
101090304=康保
101090305=沽源
101090306=尚义
101090307=蔚县
101090308=阳原
101090309=怀安
101090310=万全
101090311=怀来
101090312=涿鹿
101090313=赤城
101090314=崇礼
101090402=承德
101090403=承德县
101090404=兴隆
101090405=平泉
101090406=滦平
101090407=隆化
101090408=丰宁
101090409=宽城
101090410=围场
101090411=塞罕坎
101090501=唐山
101090502=丰南
101090503=丰润
101090504=滦县
101090505=滦南
101090506=乐亭
101090507=迁西
101090508=玉田
101090509=唐海
101090510=遵化
101090511=迁安
101090601=廊坊
101090602=固安
101090603=永清
101090604=香河
101090605=大城
101090606=文安
101090607=大厂
101090608=霸州
101090609=三河
101090701=沧州
101090702=青县
101090703=东光
101090704=海兴
101090705=盐山
101090706=肃宁
101090707=南皮
101090708=吴桥
101090709=献县
101090710=孟村
101090711=泊头
101090712=任丘
101090713=黄骅
101090714=河间
101090715=曹妃甸
101090801=衡水
101090802=枣强
101090803=武邑
101090804=武强
101090805=饶阳
101090806=安平
101090807=故城
101090808=景县
101090809=阜城
101090810=冀州
101090811=深州
101090901=邢台
101090902=临城
101090903=邢台县浆水
101090904=内邱
101090905=柏乡
101090906=隆尧
101090907=南和
101090908=宁晋
101090909=巨鹿
101090910=新河
101090911=广宗
101090912=平乡
101090913=威县
101090914=清河
101090915=临西
101090916=南宫
101090917=沙河
101090918=任县
101091001=邯郸
101091002=峰峰
101091003=临漳
101091004=成安
101091005=大名
101091006=涉县
101091007=磁县
101091008=肥乡
101091009=永年
101091010=邱县
101091011=鸡泽
101091012=广平
101091013=馆陶
101091014=魏县
101091015=曲周
101091016=武安
101091101=秦皇岛
101091102=青龙
101091103=昌黎
101091104=抚宁
101091105=卢龙
101091106=北戴河


101100101=太原
101100102=清徐
101100103=阳曲
101100104=娄烦
101100105=太原古交区
101100106=太原北郊
101100107=太原南郊
101100201=大同
101100202=阳高
101100203=大同县
101100204=天镇
101100205=广灵
101100206=灵邱
101100207=浑源
101100208=左云
101100301=阳泉
101100302=盂县
101100303=平定
101100401=晋中
101100402=榆次
101100403=榆社
101100404=左权
101100405=和顺
101100406=昔阳
101100407=寿阳
101100408=太谷
101100409=祁县
101100410=平遥
101100411=灵石
101100412=介休
101100501=长治
101100502=黎城
101100503=屯留
101100504=潞城
101100505=襄垣
101100506=平顺
101100507=武乡
101100508=沁县
101100509=长子
101100510=沁源
101100511=壶关
101100601=晋城
101100602=沁水
101100603=阳城
101100604=陵川
101100605=高平
101100701=临汾
101100702=曲沃
101100703=永和
101100704=隰县
101100705=大宁
101100706=吉县
101100707=襄汾
101100708=蒲县
101100709=汾西
101100710=洪洞
101100711=霍州
101100712=乡宁
101100713=翼城
101100714=侯马
101100715=浮山
101100716=安泽
101100717=古县
101100801=运城
101100802=临猗
101100803=稷山
101100804=万荣
101100805=河津
101100806=新绛
101100807=绛县
101100808=闻喜
101100809=垣曲
101100810=永济
101100811=芮城
101100812=夏县
101100813=平陆
101100901=朔州
101100902=平鲁
101100903=山阴
101100904=右玉
101100905=应县
101100906=怀仁
101101001=忻州
101101002=定襄
101101003=五台县豆村
101101004=河曲
101101005=偏关
101101006=神池
101101007=宁武
101101008=代县
101101009=繁峙
101101010=五台山
101101011=保德
101101012=静乐
101101013=岢岚
101101014=五寨
101101015=原平
101101100=吕梁
101101101=离石
101101102=临县
101101103=兴县
101101104=岚县
101101105=柳林
101101106=石楼
101101107=方山
101101108=交口
101101109=中阳
101101110=孝义
101101111=汾阳
101101112=文水
101101113=交城


101110101=西安
101110102=长安
101110103=临潼
101110104=蓝田
101110105=周至
101110106=户县
101110107=高陵
101110108=杨凌
101110200=咸阳
101110201=三原
101110202=礼泉
101110203=永寿
101110204=淳化
101110205=泾阳
101110206=武功
101110207=乾县
101110208=彬县
101110209=长武
101110210=旬邑
101110211=兴平
101110300=延安
101110301=延长
101110302=延川
101110303=子长
101110304=宜川
101110305=富县
101110306=志丹
101110307=安塞
101110308=甘泉
101110309=洛川
101110310=黄陵
101110311=黄龙
101110312=吴起
101110401=榆林
101110402=府谷
101110403=神木
101110404=佳县
101110405=定边
101110406=靖边
101110407=横山
101110408=米脂
101110409=子洲
101110410=绥德
101110411=吴堡
101110412=清涧
101110501=渭南
101110502=华县
101110503=潼关
101110504=大荔
101110505=白水
101110506=富平
101110507=蒲城
101110508=澄城
101110509=合阳
101110510=韩城
101110511=华阴
101110512=华山
101110601=商洛
101110602=洛南
101110603=柞水
101110605=镇安
101110606=丹凤
101110607=商南
101110608=山阳
101110701=安康
101110702=紫阳
101110703=石泉
101110704=汉阴
101110705=旬阳
101110706=岚皋
101110707=平利
101110708=白河
101110709=镇坪
101110710=宁陕
101110801=汉中
101110802=略阳
101110803=勉县
101110804=留坝
101110805=洋县
101110806=城固
101110807=西乡
101110808=佛坪
101110809=宁强
101110810=南郑
101110811=镇巴
101110901=宝鸡
101110902=宝鸡县
101110903=千阳
101110904=麟游
101110905=岐山
101110906=凤翔
101110907=扶风
101110908=眉县
101110909=太白
101110910=凤县
101110911=陇县
101111001=铜川
101111002=耀县
101111003=宜君


101120101=济南
101120102=长清
101120103=商河
101120104=章丘
101120105=平阴
101120106=济阳
101120201=青岛
101120202=崂山
101120203=潮连岛
101120204=即墨
101120205=胶州
101120206=胶南
101120207=莱西
101120208=平度
101120301=淄博
101120302=淄川
101120303=博山
101120304=高青
101120305=周村
101120306=沂源
101120307=桓台
101120308=临淄
101120401=德州
101120402=武城
101120403=临邑
101120404=陵县
101120405=齐河
101120406=乐陵
101120407=庆云
101120408=平原
101120409=宁津
101120410=夏津
101120411=禹城
101120501=烟台
101120502=莱州
101120503=长岛
101120504=蓬莱
101120505=龙口
101120506=招远
101120507=栖霞
101120508=福山
101120509=牟平
101120510=莱阳
101120511=海阳
101120512=千里岩
101120601=潍坊
101120602=青州
101120603=寿光
101120604=临朐
101120605=昌乐
101120606=昌邑
101120607=安丘
101120608=高密
101120609=诸城
101120701=济宁
101120702=嘉祥
101120703=微山
101120704=鱼台
101120705=兖州
101120706=金乡
101120707=汶上
101120708=泗水
101120709=梁山
101120710=曲阜
101120711=邹城
101120801=泰安
101120802=新泰
101120803=泰山
101120804=肥城
101120805=东平
101120806=宁阳
101120901=临沂
101120902=莒南
101120903=沂南
101120904=苍山
101120905=临沭
101120906=郯城
101120907=蒙阴
101120908=平邑
101120909=费县
101120910=沂水
101120911=马站
101121001=菏泽
101121002=鄄城
101121003=郓城
101121004=东明
101121005=定陶
101121006=巨野
101121007=曹县
101121008=成武
101121009=单县
101121101=滨州
101121102=博兴
101121103=无棣
101121104=阳信
101121105=惠民
101121106=沾化
101121107=邹平
101121201=东营
101121202=河口
101121203=垦利
101121204=利津
101121205=广饶
101121301=威海
101121302=文登
101121303=荣成
101121304=乳山
101121305=成山头
101121306=石岛
101121401=枣庄
101121402=薛城
101121403=峄城
101121404=台儿庄
101121405=滕州
101121501=日照
101121502=五莲
101121503=莒县
101121601=莱芜
101121701=聊城
101121702=冠县
101121703=阳谷
101121704=高唐
101121705=茌平
101121706=东阿
101121707=临清
101121708=朝城
101121709=莘县


101130101=乌鲁木齐
101130102=蔡家湖
101130103=小渠子
101130104=巴仑台
101130105=达坂城
101130106=十三间房气象站
101130107=天山大西沟
101130108=乌鲁木齐牧试站
101130109=天池
101130110=白杨沟
101130201=克拉玛依
101130301=石河子
101130302=炮台
101130303=莫索湾
101130304=乌兰乌苏
101130401=昌吉
101130402=呼图壁
101130403=米泉
101130404=阜康
101130405=吉木萨尔
101130406=奇台
101130407=玛纳斯
101130408=木垒
101130409=北塔山
101130501=吐鲁番
101130502=托克逊
101130503=吐鲁番东坎
101130504=鄯善
101130505=红柳河
101130601=库尔勒
101130602=轮台
101130603=尉犁
101130604=若羌
101130605=且末
101130606=和静
101130607=焉耆
101130608=和硕
101130609=库米什
101130610=巴音布鲁克
101130611=铁干里克
101130612=博湖
101130613=塔中
101130701=阿拉尔
101130801=阿克苏
101130802=乌什
101130803=温宿
101130804=拜城
101130805=新和
101130806=沙雅
101130807=库车
101130808=柯坪
101130809=阿瓦提
101130901=喀什
101130902=英吉沙
101130903=塔什库尔干
101130904=麦盖提
101130905=莎车
101130906=叶城
101130907=泽普
101130908=巴楚
101130909=岳普湖
101130910=伽师
101131001=伊宁
101131002=察布查尔
101131003=尼勒克
101131004=伊宁县
101131005=巩留
101131006=新源
101131007=昭苏
101131008=特克斯
101131009=霍城
101131010=霍尔果斯
101131101=塔城
101131102=裕民
101131103=额敏
101131104=和布克赛尔
101131105=托里
101131106=乌苏
101131107=沙湾
101131108=和丰
101131201=哈密
101131202=沁城
101131203=巴里坤
101131204=伊吾
101131205=淖毛湖
101131301=和田
101131302=皮山
101131303=策勒
101131304=墨玉
101131305=洛浦
101131306=民丰
101131307=于田
101131401=阿勒泰
101131402=哈巴河
101131403=一八五团
101131404=黑山头
101131405=吉木乃
101131406=布尔津
101131407=福海
101131408=富蕴
101131409=青河
101131410=安德河
101131501=阿图什
101131502=乌恰
101131503=阿克陶
101131504=阿合奇
101131505=吐尔尕特
101131601=博乐
101131602=温泉
101131603=精河
101131606=阿拉山口


101140101=拉萨
101140102=当雄
101140103=尼木
101140104=墨竹贡卡
101140201=日喀则
101140202=拉孜
101140203=南木林
101140204=聂拉木
101140205=定日
101140206=江孜
101140207=帕里
101140301=山南
101140302=贡嘎
101140303=琼结
101140304=加查
101140305=浪卡子
101140306=错那
101140307=隆子
101140308=泽当
101140401=林芝
101140402=波密
101140403=米林
101140404=察隅
101140501=昌都
101140502=丁青
101140503=类乌齐
101140504=洛隆
101140505=左贡
101140506=芒康
101140507=八宿
101140601=那曲
101140603=嘉黎
101140604=班戈
101140605=安多
101140606=索县
101140607=比如
101140701=阿里
101140702=改则
101140703=申扎
101140704=狮泉河
101140705=普兰


101150101=西宁
101150102=大通
101150103=湟源
101150104=湟中
101150105=铁卜加
101150106=铁卜加寺
101150107=中心站
101150201=海东
101150202=乐都
101150203=民和
101150204=互助
101150205=化隆
101150206=循化
101150207=冷湖
101150208=平安
101150301=黄南
101150302=尖扎
101150303=泽库
101150304=河南
101150401=海南
101150402=江西沟
101150404=贵德
101150405=河卡
101150406=兴海
101150407=贵南
101150408=同德
101150409=共和
101150501=果洛
101150502=班玛
101150503=甘德
101150504=达日
101150505=久治
101150506=玛多
101150507=清水河
101150508=玛沁
101150601=玉树
101150602=托托河
101150603=治多
101150604=杂多
101150605=囊谦
101150606=曲麻莱
101150701=海西
101150702=格尔木
101150703=察尔汉
101150704=野牛沟
101150705=五道梁
101150706=小灶火
101150708=天峻
101150709=乌兰
101150710=都兰
101150711=诺木洪
101150712=茫崖
101150713=大柴旦
101150714=茶卡
101150715=香日德
101150716=德令哈
101150801=海北
101150802=门源
101150803=祁连
101150804=海晏
101150805=托勒
101150806=刚察


101160101=兰州
101160102=皋兰
101160103=永登
101160104=榆中
101160201=定西
101160202=通渭
101160203=陇西
101160204=渭源
101160205=临洮
101160206=漳县
101160207=岷县
101160208=安定
101160301=平凉
101160302=泾川
101160303=灵台
101160304=崇信
101160305=华亭
101160306=庄浪
101160307=静宁
101160308=崆峒
101160401=庆阳
101160402=西峰
101160403=环县
101160404=华池
101160405=合水
101160406=正宁
101160407=宁县
101160408=镇原
101160409=庆城
101160501=武威
101160502=民勤
101160503=古浪
101160504=乌鞘岭
101160505=天祝
101160601=金昌
101160602=永昌
101160701=张掖
101160702=肃南
101160703=民乐
101160704=临泽
101160705=高台
101160706=山丹
101160801=酒泉
101160802=鼎新
101160803=金塔
101160804=马鬃山
101160805=瓜州
101160806=肃北
101160807=玉门镇
101160808=敦煌
101160901=天水
101160902=北道区
101160903=清水
101160904=秦安
101160905=甘谷
101160906=武山
101160907=张家川
101160908=麦积
101161001=武都
101161002=成县
101161003=文县
101161004=宕昌
101161005=康县
101161006=西和
101161007=礼县
101161008=徽县
101161009=两当
101161101=临夏
101161102=康乐
101161103=永靖
101161104=广河
101161105=和政
101161106=东乡
101161201=合作
101161202=临潭
101161203=卓尼
101161204=舟曲
101161205=迭部
101161206=玛曲
101161207=碌曲
101161208=夏河
101161301=白银
101161302=靖远
101161303=会宁
101161304=华家岭
101161305=景泰


101170101=银川
101170102=永宁
101170103=灵武
101170104=贺兰
101170201=石嘴山
101170202=惠农
101170203=平罗
101170204=陶乐
101170205=石炭井
101170206=大武口
101170301=吴忠
101170302=同心
101170303=盐池
101170304=韦州
101170305=麻黄山
101170306=青铜峡
101170401=固原
101170402=西吉
101170403=隆德
101170404=泾源
101170405=六盘山
101170406=彭阳
101170501=中卫
101170502=中宁
101170503=兴仁堡
101170504=海原


101180101=郑州
101180102=巩义
101180103=荥阳
101180104=登封
101180105=新密
101180106=新郑
101180107=中牟
101180108=郑州农试站
101180201=安阳
101180202=汤阴
101180203=滑县
101180204=内黄
101180205=林州
101180301=新乡
101180302=获嘉
101180303=原阳
101180304=辉县
101180305=卫辉
101180306=延津
101180307=封丘
101180308=长垣
101180401=许昌
101180402=鄢陵
101180403=襄城
101180404=长葛
101180405=禹州
101180501=平顶山
101180502=郏县
101180503=宝丰
101180504=汝州
101180505=叶县
101180506=舞钢
101180507=鲁山
101180601=信阳
101180602=息县
101180603=罗山
101180604=光山
101180605=新县
101180606=淮滨
101180607=潢川
101180608=固始
101180609=商城
101180610=鸡公山
101180611=信阳地区农试站
101180701=南阳
101180702=南召
101180703=方城
101180704=社旗
101180705=西峡
101180706=内乡
101180707=镇平
101180708=淅川
101180709=新野
101180710=唐河
101180711=邓州
101180712=桐柏
101180801=开封
101180802=杞县
101180803=尉氏
101180804=通许
101180805=兰考
101180901=洛阳
101180902=新安
101180903=孟津
101180904=宜阳
101180905=洛宁
101180906=伊川
101180907=嵩县
101180908=偃师
101180909=栾川
101180910=汝阳
101181001=商丘
101181002=睢阳区
101181003=睢县
101181004=民权
101181005=虞城
101181006=柘城
101181007=宁陵
101181008=夏邑
101181009=永城
101181101=焦作
101181102=修武
101181103=武陟
101181104=沁阳
101181106=博爱
101181107=温县
101181108=孟州
101181201=鹤壁
101181202=浚县
101181203=淇县
101181301=濮阳
101181302=台前
101181303=南乐
101181304=清丰
101181305=范县
101181401=周口
101181402=扶沟
101181403=太康
101181404=淮阳
101181405=西华
101181406=商水
101181407=项城
101181408=郸城
101181409=鹿邑
101181410=沈丘
101181411=黄泛区
101181501=漯河
101181502=临颍
101181503=舞阳
101181601=驻马店
101181602=西平
101181603=遂平
101181604=上蔡
101181605=汝南
101181606=泌阳
101181607=平舆
101181608=新蔡
101181609=确山
101181610=正阳
101181701=三门峡
101181702=灵宝
101181703=渑池
101181704=卢氏
101181801=济源


101190101=南京
101190102=溧水
101190103=高淳
101190104=江宁
101190105=六合
101190106=江浦
101190107=浦口
101190201=无锡
101190202=江阴
101190203=宜兴
101190301=镇江
101190302=丹阳
101190303=扬中
101190304=句容
101190305=丹徒
101190401=苏州
101190402=常熟
101190403=张家港
101190404=昆山
101190405=吴县东山
101190406=吴县
101190407=吴江
101190408=太仓
101190501=南通
101190502=海安
101190503=如皋
101190504=如东
101190505=吕泗
101190506=吕泗渔场
101190507=启东
101190508=海门
101190509=通州
101190601=扬州
101190602=宝应
101190603=仪征
101190604=高邮
101190605=江都
101190606=邗江
101190701=盐城
101190702=响水
101190703=滨海
101190704=阜宁
101190705=射阳
101190706=建湖
101190707=东台
101190708=大丰
101190709=盐都
101190801=徐州
101190802=徐州农试站
101190803=丰县
101190804=沛县
101190805=邳州
101190806=睢宁
101190807=新沂
101190901=淮安
101190902=金湖
101190903=盱眙
101190904=洪泽
101190905=涟水
101190906=淮阴县
101190907=淮阴
101190908=楚州
101191001=连云港
101191002=东海
101191003=赣榆
101191004=灌云
101191005=灌南
101191006=西连岛
101191007=燕尾港
101191101=常州
101191102=溧阳
101191103=金坛
101191201=泰州
101191202=兴化
101191203=泰兴
101191204=姜堰
101191205=靖江
101191301=宿迁
101191302=沭阳
101191303=泗阳
101191304=泗洪


101200101=武汉
101200102=蔡甸
101200103=黄陂
101200104=新洲
101200105=江夏
101200201=襄樊
101200202=襄阳
101200203=保康
101200204=南漳
101200205=宜城
101200206=老河口
101200207=谷城
101200208=枣阳
101200301=鄂州
101200401=孝感
101200402=安陆
101200403=云梦
101200404=大悟
101200405=应城
101200406=汉川
101200501=黄冈
101200502=红安
101200503=麻城
101200504=罗田
101200505=英山
101200506=浠水
101200507=蕲春
101200508=黄梅
101200509=武穴
101200601=黄石
101200602=大冶
101200603=阳新
101200701=咸宁
101200702=赤壁
101200703=嘉鱼
101200704=崇阳
101200705=通城
101200706=通山
101200801=荆州
101200802=江陵
101200803=公安
101200804=石首
101200805=监利
101200806=洪湖
101200807=松滋
101200901=宜昌
101200902=远安
101200903=秭归
101200904=兴山
101200905=宜昌县
101200906=五峰
101200907=当阳
101200908=长阳
101200909=宜都
101200910=枝江
101200911=三峡
101200912=夷陵
101201001=恩施
101201002=利川
101201003=建始
101201004=咸丰
101201005=宣恩
101201006=鹤峰
101201007=来凤
101201008=巴东
101201009=绿葱坡
101201101=十堰
101201102=竹溪
101201103=郧西
101201104=郧县
101201105=竹山
101201106=房县
101201107=丹江口
101201201=神农架
101201301=随州
101201302=广水
101201401=荆门
101201402=钟祥
101201403=京山
101201501=天门
101201601=仙桃
101201701=潜江


101210101=杭州
101210102=萧山
101210103=桐庐
101210104=淳安
101210105=建德
101210106=余杭
101210107=临安
101210108=富阳
101210201=湖州
101210202=长兴
101210203=安吉
101210204=德清
101210301=嘉兴
101210302=嘉善
101210303=海宁
101210304=桐乡
101210305=平湖
101210306=海盐
101210401=宁波
101210403=慈溪
101210404=余姚
101210405=奉化
101210406=象山
101210407=石浦
101210408=宁海
101210409=鄞县
101210410=北仑
101210411=鄞州
101210412=镇海
101210501=绍兴
101210502=诸暨
101210503=上虞
101210504=新昌
101210505=嵊州
101210601=台州
101210602=括苍山
101210603=玉环
101210604=三门
101210605=天台
101210606=仙居
101210607=温岭
101210608=大陈
101210609=洪家
101210701=温州
101210702=泰顺
101210703=文成
101210704=平阳
101210705=瑞安
101210706=洞头
101210707=乐清
101210708=永嘉
101210709=苍南
101210801=丽水
101210802=遂昌
101210803=龙泉
101210804=缙云
101210805=青田
101210806=云和
101210807=庆元
101210901=金华
101210902=浦江
101210903=兰溪
101210904=义乌
101210905=东阳
101210906=武义
101210907=永康
101210908=磐安
101211001=衢州
101211002=常山
101211003=开化
101211004=龙游
101211005=江山
101211101=舟山
101211102=嵊泗
101211103=嵊山
101211104=岱山
101211105=普陀
101211106=定海


101220101=合肥
101220102=长丰
101220103=肥东
101220104=肥西
101220201=蚌埠
101220202=怀远
101220203=固镇
101220204=五河
101220301=芜湖
101220302=繁昌
101220303=芜湖县
101220304=南陵
101220401=淮南
101220402=凤台
101220501=马鞍山
101220502=当涂
101220601=安庆
101220602=枞阳
101220603=太湖
101220604=潜山
101220605=怀宁
101220606=宿松
101220607=望江
101220608=岳西
101220609=桐城
101220701=宿州
101220702=砀山
101220703=灵璧
101220704=泗县
101220705=萧县
101220801=阜阳
101220802=阜南
101220803=颍上
101220804=临泉
101220805=界首
101220806=太和
101220901=亳州
101220902=涡阳
101220903=利辛
101220904=蒙城
101221001=黄山站
101221002=黄山区
101221003=屯溪
101221004=祁门
101221005=黟县
101221006=歙县
101221007=休宁
101221008=黄山市
101221101=滁州
101221102=凤阳
101221103=明光
101221104=定远
101221105=全椒
101221106=来安
101221107=天长
101221201=淮北
101221202=濉溪
101221301=铜陵
101221401=宣城
101221402=泾县
101221403=旌德
101221404=宁国
101221405=绩溪
101221406=广德
101221407=郎溪
101221501=六安
101221502=霍邱
101221503=寿县
101221504=南溪
101221505=金寨
101221506=霍山
101221507=舒城
101221601=巢湖
101221602=庐江
101221603=无为
101221604=含山
101221605=和县
101221701=池州
101221702=东至
101221703=青阳
101221704=九华山
101221705=石台


101230101=福州
101230102=闽清
101230103=闽侯
101230104=罗源
101230105=连江
101230106=马祖
101230107=永泰
101230108=平潭
101230109=福州郊区
101230110=长乐
101230111=福清
101230112=平潭海峡大桥
101230201=厦门
101230202=同安
101230301=宁德
101230302=古田
101230303=霞浦
101230304=寿宁
101230305=周宁
101230306=福安
101230307=柘荣
101230308=福鼎
101230309=屏南
101230401=莆田
101230402=仙游
101230403=秀屿港
101230501=泉州
101230502=安溪
101230503=九仙山
101230504=永春
101230505=德化
101230506=南安
101230507=崇武
101230508=金山
101230509=晋江
101230601=漳州
101230602=长泰
101230603=南靖
101230604=平和
101230605=龙海
101230606=漳浦
101230607=诏安
101230608=东山
101230609=云霄
101230610=华安
101230701=龙岩
101230702=长汀
101230703=连城
101230704=武平
101230705=上杭
101230706=永定
101230707=漳平
101230801=三明
101230802=宁化
101230803=清流
101230804=泰宁
101230805=将乐
101230806=建宁
101230807=明溪
101230808=沙县
101230809=尤溪
101230810=永安
101230811=大田
101230901=南平
101230902=顺昌
101230903=光泽
101230904=邵武
101230905=武夷山
101230906=浦城
101230907=建阳
101230908=松溪
101230909=政和
101230910=建瓯


101240101=南昌
101240102=新建
101240103=南昌县
101240104=安义
101240105=进贤
101240106=莲塘
101240201=九江
101240202=瑞昌
101240203=庐山
101240204=武宁
101240205=德安
101240206=永修
101240207=湖口
101240208=彭泽
101240209=星子
101240210=都昌
101240211=棠荫
101240212=修水
101240301=上饶
101240302=鄱阳
101240303=婺源
101240304=康山
101240305=余干
101240306=万年
101240307=德兴
101240308=上饶县
101240309=弋阳
101240310=横峰
101240311=铅山
101240312=玉山
101240313=广丰
101240314=波阳
101240401=抚州
101240402=广昌
101240403=乐安
101240404=崇仁
101240405=金溪
101240406=资溪
101240407=宜黄
101240408=南城
101240409=南丰
101240410=黎川
101240411=东乡
101240501=宜春
101240502=铜鼓
101240503=宜丰
101240504=万载
101240505=上高
101240506=靖安
101240507=奉新
101240508=高安
101240509=樟树
101240510=丰城
101240601=吉安
101240602=吉安县
101240603=吉水
101240604=新干
101240605=峡江
101240606=永丰
101240607=永新
101240608=井冈山
101240609=万安
101240610=遂川
101240611=泰和
101240612=安福
101240613=宁冈
101240701=赣州
101240702=崇义
101240703=上犹
101240704=南康
101240705=大余
101240706=信丰
101240707=宁都
101240708=石城
101240709=瑞金
101240710=于都
101240711=会昌
101240712=安远
101240713=全南
101240714=龙南
101240715=定南
101240716=寻乌
101240717=兴国
101240801=景德镇
101240802=乐平
101240901=萍乡
101240902=莲花
101241001=新余
101241002=分宜
101241101=鹰潭
101241102=余江
101241103=贵溪


101250101=长沙
101250102=宁乡
101250103=浏阳
101250104=马坡岭
101250201=湘潭
101250202=韶山
101250203=湘乡
101250301=株洲
101250302=攸县
101250303=醴陵
101250304=株洲县
101250305=茶陵
101250306=炎陵
101250401=衡阳
101250402=衡山
101250403=衡东
101250404=祁东
101250405=衡阳县
101250406=常宁
101250407=衡南
101250408=耒阳
101250409=南岳
101250501=郴州
101250502=桂阳
101250503=嘉禾
101250504=宜章
101250505=临武
101250506=桥口
101250507=资兴
101250508=汝城
101250509=安仁
101250510=永兴
101250511=桂东
101250601=常德
101250602=安乡
101250603=桃源
101250604=汉寿
101250605=澧县
101250606=临澧
101250607=石门
101250700=益阳
101250701=赫山区
101250702=南县
101250703=桃江
101250704=安化
101250705=沅江
101250801=娄底
101250802=双峰
101250803=冷水江
101250804=冷水滩
101250805=新化
101250806=涟源
101250901=邵阳
101250902=隆回
101250903=洞口
101250904=新邵
101250905=邵东
101250906=绥宁
101250907=新宁
101250908=武冈
101250909=城步
101250910=邵阳县
101251001=岳阳
101251002=华容
101251003=湘阴
101251004=汨罗
101251005=平江
101251006=临湘
101251101=张家界
101251102=桑植
101251103=慈利
101251201=怀化
101251202=鹤城区
101251203=沅陵
101251204=辰溪
101251205=靖州
101251206=会同
101251207=通道
101251208=麻阳
101251209=新晃
101251210=芷江
101251211=溆浦
101251301=黔阳
101251302=洪江
101251401=永州
101251402=祁阳
101251403=东安
101251404=双牌
101251405=道县
101251406=宁远
101251407=江永
101251408=蓝山
101251409=新田
101251410=江华
101251501=吉首
101251502=保靖
101251503=永顺
101251504=古丈
101251505=凤凰
101251506=泸溪
101251507=龙山
101251508=花垣


101260101=贵阳
101260102=白云
101260103=花溪
101260104=乌当
101260105=息烽
101260106=开阳
101260107=修文
101260108=清镇
101260201=遵义
101260202=遵义县
101260203=仁怀
101260204=绥阳
101260205=湄潭
101260206=凤冈
101260207=桐梓
101260208=赤水
101260209=习水
101260210=道真
101260211=正安
101260212=务川
101260213=余庆
101260214=汇川
101260301=安顺
101260302=普定
101260303=镇宁
101260304=平坝
101260305=紫云
101260306=关岭
101260401=都匀
101260402=贵定
101260403=瓮安
101260404=长顺
101260405=福泉
101260406=惠水
101260407=龙里
101260408=罗甸
101260409=平塘
101260410=独山
101260411=三都
101260412=荔波
101260501=凯里
101260502=岑巩
101260503=施秉
101260504=镇远
101260505=黄平
101260506=黄平旧洲
101260507=麻江
101260508=丹寨
101260509=三穗
101260510=台江
101260511=剑河
101260512=雷山
101260513=黎平
101260514=天柱
101260515=锦屏
101260516=榕江
101260517=从江
101260518=炉山
101260601=铜仁
101260602=江口
101260603=玉屏
101260604=万山
101260605=思南
101260606=塘头
101260607=印江
101260608=石阡
101260609=沿河
101260610=德江
101260611=松桃
101260701=毕节
101260702=赫章
101260703=金沙
101260704=威宁
101260705=大方
101260706=纳雍
101260707=织金
101260801=六盘水
101260802=六枝
101260803=水城
101260804=盘县
101260901=黔西
101260902=晴隆
101260903=兴仁
101260904=贞丰
101260905=望谟
101260906=兴义
101260907=安龙
101260908=册亨
101260909=普安


101270101=成都
101270102=龙泉驿
101270103=新都
101270104=温江
101270105=金堂
101270106=双流
101270107=郫县
101270108=大邑
101270109=蒲江
101270110=新津
101270111=都江堰
101270112=彭州
101270113=邛崃
101270114=崇州
101270115=崇庆
101270116=彭县
101270201=攀枝花
101270202=仁和
101270203=米易
101270204=盐边
101270301=自贡
101270302=富顺
101270303=荣县
101270401=绵阳
101270402=三台
101270403=盐亭
101270404=安县
101270405=梓潼
101270406=北川
101270407=平武
101270408=江油
101270501=南充
101270502=南部
101270503=营山
101270504=蓬安
101270505=仪陇
101270506=西充
101270507=阆中
101270601=达州
101270602=宣汉
101270603=开江
101270604=大竹
101270605=渠县
101270606=万源
101270607=达川
101270701=遂宁
101270702=蓬溪
101270703=射洪
101270801=广安
101270802=岳池
101270803=武胜
101270804=邻水
101270805=华蓥山
101270901=巴中
101270902=通江
101270903=南江
101270904=平昌
101271001=泸州
101271003=泸县
101271004=合江
101271005=叙永
101271006=古蔺
101271007=纳溪
101271101=宜宾
101271102=宜宾农试站
101271103=宜宾县
101271104=南溪
101271105=江安
101271106=长宁
101271107=高县
101271108=珙县
101271109=筠连
101271110=兴文
101271111=屏山
101271201=内江
101271202=东兴
101271203=威远
101271204=资中
101271205=隆昌
101271301=资阳
101271302=安岳
101271303=乐至
101271304=简阳
101271401=乐山
101271402=犍为
101271403=井研
101271404=夹江
101271405=沐川
101271406=峨边
101271407=马边
101271408=峨眉
101271409=峨眉山
101271501=眉山
101271502=仁寿
101271503=彭山
101271504=洪雅
101271505=丹棱
101271506=青神
101271601=凉山
101271603=木里
101271604=盐源
101271605=德昌
101271606=会理
101271607=会东
101271608=宁南
101271609=普格
101271610=西昌
101271611=金阳
101271612=昭觉
101271613=喜德
101271614=冕宁
101271615=越西
101271616=甘洛
101271617=雷波
101271618=美姑
101271619=布拖
101271701=雅安
101271702=名山
101271703=荣经
101271704=汉源
101271705=石棉
101271706=天全
101271707=芦山
101271708=宝兴
101271801=甘孜
101271802=康定
101271803=泸定
101271804=丹巴
101271805=九龙
101271806=雅江
101271807=道孚
101271808=炉霍
101271809=新龙
101271810=德格
101271811=白玉
101271812=石渠
101271813=色达
101271814=理塘
101271815=巴塘
101271816=乡城
101271817=稻城
101271818=得荣
101271901=阿坝
101271902=汶川
101271903=理县
101271904=茂县
101271905=松潘
101271906=九寨沟
101271907=金川
101271908=小金
101271909=黑水
101271910=马尔康
101271911=壤塘
101271912=若尔盖
101271913=红原
101271914=南坪
101272001=德阳
101272002=中江
101272003=广汉
101272004=什邡
101272005=绵竹
101272006=罗江
101272101=广元
101272102=旺苍
101272103=青川
101272104=剑阁
101272105=苍溪


101280101=广州
101280102=番禺
101280103=从化
101280104=增城
101280105=花都
101280106=天河
101280201=韶关
101280202=乳源
101280203=始兴
101280204=翁源
101280205=乐昌
101280206=仁化
101280207=南雄
101280208=新丰
101280209=曲江
101280301=惠州
101280302=博罗
101280303=惠阳
101280304=惠东
101280305=龙门
101280401=梅州
101280402=兴宁
101280403=蕉岭
101280404=大埔
101280406=丰顺
101280407=平远
101280408=五华
101280409=梅县
101280501=汕头
101280502=潮阳
101280503=澄海
101280504=南澳
101280505=云澳
101280506=南澎岛
101280601=深圳
101280701=珠海
101280702=斗门
101280703=黄茅洲
101280800=佛山
101280801=顺德
101280802=三水
101280803=南海
101280901=肇庆
101280902=广宁
101280903=四会
101280905=德庆
101280906=怀集
101280907=封开
101280908=高要
101281001=湛江
101281002=吴川
101281003=雷州
101281004=徐闻
101281005=廉江
101281006=硇洲
101281007=遂溪
101281101=江门
101281103=开平
101281104=新会
101281105=恩平
101281106=台山
101281107=上川岛
101281108=鹤山
101281201=河源
101281202=紫金
101281203=连平
101281204=和平
101281205=龙川
101281301=清远
101281302=连南
101281303=连州
101281304=连山
101281305=阳山
101281306=佛冈
101281307=英德
101281401=云浮
101281402=罗定
101281403=新兴
101281404=郁南
101281501=潮州
101281502=饶平
101281601=东莞
101281701=中山
101281801=阳江
101281802=阳春
101281901=揭阳
101281902=揭西
101281903=普宁
101281904=惠来
101282001=茂名
101282002=高州
101282003=化州
101282004=电白
101282005=信宜
101282101=汕尾
101282102=海丰
101282103=陆丰
101282104=遮浪
101282105=东沙岛


101290101=昆明
101290102=昆明农试站
101290103=东川
101290104=寻甸
101290105=晋宁
101290106=宜良
101290107=石林
101290108=呈贡
101290109=富民
101290110=嵩明
101290111=禄劝
101290112=安宁
101290113=太华山
101290114=河口
101290201=大理
101290202=云龙
101290203=漾鼻
101290204=永平
101290205=宾川
101290206=弥渡
101290207=祥云
101290208=魏山
101290209=剑川
101290210=洱源
101290211=鹤庆
101290212=南涧
101290301=红河
101290302=石屏
101290303=建水
101290304=弥勒
101290305=元阳
101290306=绿春
101290307=开远
101290308=个旧
101290309=蒙自
101290310=屏边
101290311=泸西
101290312=金平
101290401=曲靖
101290402=沾益
101290403=陆良
101290404=富源
101290405=马龙
101290406=师宗
101290407=罗平
101290408=会泽
101290409=宣威
101290501=保山
101290502=富宁
101290503=龙陵
101290504=施甸
101290505=昌宁
101290506=腾冲
101290601=文山
101290602=西畴
101290603=马关
101290604=麻栗坡
101290605=砚山
101290606=邱北
101290607=广南
101290701=玉溪
101290702=澄江
101290703=江川
101290704=通海
101290705=华宁
101290706=新平
101290707=易门
101290708=峨山
101290709=元江
101290801=楚雄
101290802=大姚
101290803=元谋
101290804=姚安
101290805=牟定
101290806=南华
101290807=武定
101290808=禄丰
101290809=双柏
101290810=永仁
101290901=普洱
101290902=景谷
101290903=景东
101290904=澜沧
101290905=普洱
101290906=墨江
101290907=江城
101290908=孟连
101290909=西盟
101290910=镇源
101290911=镇沅
101290912=宁洱
101291001=昭通
101291002=鲁甸
101291003=彝良
101291004=镇雄
101291005=威信
101291006=巧家
101291007=绥江
101291008=永善
101291009=盐津
101291010=大关
101291101=临沧
101291102=沧源
101291103=耿马
101291104=双江
101291105=凤庆
101291106=永德
101291107=云县
101291108=镇康
101291201=怒江
101291203=福贡
101291204=兰坪
101291205=泸水
101291206=六库
101291207=贡山
101291301=香格里拉
101291302=德钦
101291303=维西
101291304=中甸
101291401=丽江
101291402=永胜
101291403=华坪
101291404=宁蒗
101291501=德宏
101291502=潞江坝
101291503=陇川
101291504=盈江
101291505=畹町镇
101291506=瑞丽
101291507=梁河
101291508=潞西
101291601=景洪
101291602=大勐龙
101291603=勐海
101291604=景洪电站
101291605=勐腊


101300101=南宁
101300102=南宁城区
101300103=邕宁
101300104=横县
101300105=隆安
101300106=马山
101300107=上林
101300108=武鸣
101300109=宾阳
101300110=硕龙
101300201=崇左
101300202=天等
101300203=龙州
101300204=凭祥
101300205=大新
101300206=扶绥
101300207=宁明
101300208=海渊
101300301=柳州
101300302=柳城
101300303=沙塘
101300304=鹿寨
101300305=柳江
101300306=融安
101300307=融水
101300308=三江
101300401=来宾
101300402=忻城
101300403=金秀
101300404=象州
101300405=武宣
101300501=桂林
101300502=桂林农试站
101300503=龙胜
101300504=永福
101300505=临桂
101300506=兴安
101300507=灵川
101300508=全州
101300509=灌阳
101300510=阳朔
101300511=恭城
101300512=平乐
101300513=荔浦
101300514=资源
101300601=梧州
101300602=藤县
101300603=太平
101300604=苍梧
101300605=蒙山
101300606=岑溪
101300701=贺州
101300702=昭平
101300703=富川
101300704=钟山
101300705=信都
101300801=贵港
101300802=桂平
101300803=平南
101300901=玉林
101300902=博白
101300903=北流
101300904=容县
101300905=陆川
101301001=百色
101301002=那坡
101301003=田阳
101301004=德保
101301005=靖西
101301006=田东
101301007=平果
101301008=隆林
101301009=西林
101301010=乐业
101301011=凌云
101301012=田林
101301101=钦州
101301102=浦北
101301103=灵山
101301201=河池
101301202=天峨
101301203=东兰
101301204=巴马
101301205=环江
101301206=罗城
101301207=宜州
101301208=凤山
101301209=南丹
101301210=都安
101301301=北海
101301302=合浦
101301303=涠洲岛
101301401=防城港
101301402=上思
101301403=东兴
101301404=板栏
101301405=防城


101310101=海口
101310102=琼山
101310201=三亚
101310202=东方
101310203=临高
101310204=澄迈
101310205=儋州
101310206=昌江
101310207=白沙
101310208=琼中
101310209=定安
101310210=屯昌
101310211=琼海
101310212=文昌
101310213=清兰
101310214=保亭
101310215=万宁
101310216=陵水
101310217=西沙
101310218=珊瑚岛
101310219=永署礁
101310220=南沙岛
101310221=乐东
101310222=五指山
101310223=通什


101320101=香港
101320102=九龙
101320103=新界
101320104=中环
101320105=铜锣湾


101330101=澳门


101340101=台北县
101340102=台北市
101340201=高雄
101340202=东港
101340203=大武
101340204=恒春
101340205=兰屿
101340301=台南
101340401=台中
101340501=桃园
101340601=新竹县
101340602=新竹市
101340603=公馆
101340701=宜兰
101340801=马公
101340802=东吉屿
101340901=嘉义
101340902=阿里山
101340903=玉山
101340904=新港
View Code

二、代码部分

界面如图

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1">
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <EditText android:id="@+id/txCity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <Button android:id="@+id/btnSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="查询" android:layout_weight="0.23"/>
    </LinearLayout>
    <TableLayout android:layout_width="fill_parent" 
           android:layout_height="fill_parent" 
        android:id="@+id/table"
        android:stretchColumns="1,2,3,4">
           
    </TableLayout>
   
</LinearLayout>
View Code

把上述的全国编码文件放在工程的src目录下,文件后缀改成.properties.

我们知道如果,已经Key,是非常容易获得对应的value。但现在的问题是只知道value,如果获取key呢。(根本不用花这个时间的本来囧!)

/**
 * 配置文件读取工具类
 * 
 * */
public class PropertiesUtil {

    private static Properties properties;
    private static PropertiesUtil propertiesUtil = new PropertiesUtil();
    private List<String> keyList = new ArrayList<String>();

    static InputStream in = PropertiesUtil.class.getClassLoader()
            .getResourceAsStream("weather.properties");

    private PropertiesUtil() {
    }

    public static PropertiesUtil getInstance() {

        if (null != propertiesUtil) {
            propertiesUtil = new PropertiesUtil();
            properties = new Properties();
            Reader reader = null;
            try {
                reader = new BufferedReader(new InputStreamReader(in, "GBK"));
            } catch (UnsupportedEncodingException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            try {
                properties.load(reader);

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return propertiesUtil;
    }

    public String getValue(String key) {
        return properties.getProperty(key);
    }
    // 通过value 获取Key
    public String getKey(String value) {
        String val = "";
        Set<Object> keys = properties.keySet();
        for (Object key : keys) {
            val = getValue(key.toString());
            if (val.equals(value)) {
                val = key.toString();
                break;
            }
        }
        return val;

    }

}

核心类

private EditText txCity;
    private Button btnSearch;
    private Dialog progressDialog;

    private String cityName;//城市名称
    private String cityCode;//城市编码
    private int day = 0;// 当天
@Override
    public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        txCity = (EditText) findViewById(R.id.txCity);
        btnSearch = (Button) findViewById(R.id.btnSearch);
        progressDialog = new AlertDialog.Builder(this).setTitle("数据读取中")
                .setMessage("正在读取数据").create();

final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                // super.handleMessage(msg);
                if (msg.what == 1) {
                    layoutTable();
                    progressDialog.hide();
                }
            }
        };
    btnSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDialog.show();
                // new Thread(runnable).start();
                new Thread(new Runnable() {

                    @Override
                    public void run() {
                        Message message = new Message();
                        /*
                         * message.setTarget(handler); message.sendToTarget();
                         */
                        cityName = txCity.getText().toString();
                        // Toast.makeText(WeatherActivity.this, cityName,
                        // 1).show();
                        checkCityName();//非空判断
                        //converCityCode();//城市编码转换
                        weather = getXml();//获取城市对象实体类
                        Bundle Bundle = new Bundle();
                        Bundle.putBoolean("1", false);
                        message.setData(Bundle);
                        message.what = 1;
                        handler.sendMessageDelayed(message, 200);
                    }
                }).start();
            }
        });


}



    private void layoutTable() {
        TableLayout table = (TableLayout) findViewById(R.id.table);
        table.removeAllViews();
        TableRow row = new TableRow(this);
        row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        row.setGravity(Gravity.CENTER_VERTICAL);

        TextView day = new TextView(this);
        day.setText(weather.getSavedate_weather());
        day.setGravity(Gravity.CENTER_HORIZONTAL);
        row.addView(day);
        TextView temp = new TextView(this);
        temp.setText(weather.getTemperature1() + "℃-"
                + weather.getTemperature2() + "℃");
        temp.setGravity(Gravity.CENTER_HORIZONTAL);
        row.addView(temp);
        TextView condition = new TextView(this);
        condition.setText(weather.getStatus1());
        condition.setGravity(Gravity.CENTER_HORIZONTAL);
        row.addView(condition);
        table.addView(row);
    }
private void converCityCode() {
        PropertiesUtil util = PropertiesUtil.getInstance();
        cityCode = util.getKey(cityName);
        // Toast.makeText(WeatherActivity.this, cityCode, 1).show();
        Log.e("--", cityCode);

    }

    private void checkCityName() {
        if (null == cityName || "".equals(cityName)) {
            new AlertDialog.Builder(this).setTitle("输入不正确")
                    .setMessage("城市名不能为空!").setPositiveButton("确定", null)
                    .show();

            return;
        }

    }
private Weather getXml() {
        URL url = null;
        try {
            weatherUrl += "&city=" + URLEncoder.encode(cityName, "GBK");
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        Weather weather = null;
        try {
            url = new URL(weatherUrl);

            XmlPullParser parser = Xml.newPullParser();
            /**
             * 读取本地数据 getResources().openRawResource(R.raw.weather);
             * parser.setInput(getResources().openRawResource(R.raw.weather),
             * "UTF-8");
             */

            /*
             * Reader reader = new BufferedReader(new InputStreamReader(
             * url.openStream(), "UTF-8")); parser.setInput(reader);
             */
            parser.setInput(url.openStream(), "UTF-8");

            int event = parser.getEventType();

            while (event != XmlPullParser.END_DOCUMENT) {
                switch (event) {
                case XmlPullParser.START_DOCUMENT:

                    break;
                case XmlPullParser.START_TAG:
                    if (parser.getName().equals("Weather")) {
                        weather = new Weather();
                    }
                    if (null != weather) {
                        if (parser.getName().equals("status1")) {
                            weather.setStatus1(parser.nextText());
                        } else if (parser.getName().equals("temperature1")) {
                            weather.setTemperature1(parser.nextText());
                        } else if (parser.getName().equals("temperature2")) {
                            weather.setTemperature2(parser.nextText());
                        } else if (parser.getName().equals("savedate_weather")) {
                            weather.setSavedate_weather(parser.nextText());
                        }
                    }

                    break;
                case XmlPullParser.END_TAG:

                    break;

                default:
                    break;
                }
                event = parser.next();

            }

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return weather;

    }

weather类

 1 public class Weather {
 2 
 3     private String status1;
 4     private String temperature1;
 5     private String temperature2;
 6     private String savedate_weather;
 7 
 8     public String getSavedate_weather() {
 9         return savedate_weather;
10     }
11 
12     public void setSavedate_weather(String savedate_weather) {
13         this.savedate_weather = savedate_weather;
14     }
15 
16     public String getStatus1() {
17         return status1;
18     }
19 
20     public void setStatus1(String status1) {
21         this.status1 = status1;
22     }
23 
24     public String getTemperature1() {
25         return temperature1;
26     }
27 
28     public void setTemperature1(String temperature1) {
29         this.temperature1 = temperature1;
30     }
31 
32     public String getTemperature2() {
33         return temperature2;
34     }
35 
36     public void setTemperature2(String temperature2) {
37         this.temperature2 = temperature2;
38     }
39 
40 }
View Code

 

需要注意几点:

1.不能再线程中去更新UI,正确的做法就是在handle中去操作。上面例子也是如此

2.关于NetworkOnMainThreadException。因为message中不用携带任何信息,因此最早的做法是如此

message.setTarget(handler); message.sendToTarget();

发现会有异常android.os.NetworkOnMainThreadException。

一是说android规范是要传递的message对象必须要有值,所以上面代码中加入了一些脏数据来避免这个问题

另外一个说法是说android4.0以上的版本如果在主线程中开启新的线程就有报这个异常。

但是上述代码我特意在主线程中开启了新的线程,发现并没有问题。

防止NetworkOnMainThreadException有方法有两种,一个判断是不是android2.3以上,如果是的话

加如下代码

    public void onCreate(Bundle savedInstanceState) {

        String strVer = GetSystemVersion();
        strVer = strVer.substring(0, 3).trim();
        float fv = Float.valueOf(strVer);
        Log.w("版本号", "" + fv);
        if (fv > 2.3) {
            StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                    .detectDiskReads().detectDiskWrites().detectNetwork() // 这里可以替换为detectAll()就包括了磁盘读写和网络I/O
                    .penaltyLog() // 打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
                    .build());
            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                    .detectLeakedSqlLiteObjects() // 探测SQLite数据库操作
                                                    // .penaltyLog()打印logcat
                                                    // .penaltyDeath()
                    .build());
        }
//其他逻辑代码

}
/**
     * 返回当前系统版本
     * 
     * @return
     */
    public static String GetSystemVersion() {
        return android.os.Build.VERSION.RELEASE;
    }

或则就是在避免在主线程中开启新的线程

    btnSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDialog.show();
                new Thread(runnable).start();

    
}
    
}
        });
    }


Runnable runnable = new Runnable(){
     
     @Override public void run() { Message message = new Message();
     
     message.setTarget(handler); message.sendToTarget();
     
     cityName = txCity.getText().toString(); //
     Toast.makeText(WeatherActivity.this, cityName, 1).show();
      checkCityName(); converCityCode(); weather = getXml();
     
      
      Bundle Bundle = new Bundle(); Bundle.putBoolean("1", false);
      message.setData(Bundle); message.what = 1;
     handler.sendMessageDelayed(message, 200); } };


final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                // super.handleMessage(msg);
                if (msg.what == 1) {
                    layoutTable();
                    progressDialog.hide();
                }
            }
        };

三、需要配置网络权限,这个问题做的时候居然忘记了,而且异常还不提示缺少权限

  <uses-permission android:name="android.permission.INTERNET"></uses-permission>

四、城市名记得转码,如果喜欢http://m.weather.com.cn/data/101230101.html的朋友也可以使用上述的配置表来解析,一样试用。

另外新浪的API没有天气有点遗憾。

来还想要做menu弹出设置信息 配置展示的天数,信息保存到sharereference中,留给感兴趣的人练手。

 

另外附上另外一种解析XML的方法,仅供参考

 url = new URL(weatherUrl); } catch (MalformedURLException e) {
         // TODO Auto-generated catch block e.printStackTrace(); } XmlParser
         parser = new XmlParser(url); String[] nodes =
         {"status1","temperature1","temperature2","savedate_weather"};
          Map<String, String> map = parser.getValue(nodes);
          
         weather=new Weather(); weather.setStatus1(map.get(nodes[0]));
          weather.setTemperature1(map.get(nodes[1]));
          weather.setTemperature2(map.get(nodes[2]));
         weather.setSavedate_weather(map.get(nodes[3]));
View Code
  1 /**
  2  * 解析xml文档,包括本地文档和url
  3  * @author cyxl
  4  * @version 1.0 2012-05-24
  5  * @since 1.0
  6  *
  7  */
  8 public class XmlParser {
  9     InputStream inStream;
 10     Element root;
 11 
 12     public InputStream getInStream() {
 13         return inStream;
 14     }
 15 
 16     public void setInStream(InputStream inStream) {
 17         this.inStream = inStream;
 18     }
 19 
 20     public Element getRoot() {
 21         return root;
 22     }
 23 
 24     public void setRoot(Element root) {
 25         this.root = root;
 26     }
 27 
 28     public XmlParser() {
 29     }
 30 
 31     public XmlParser(InputStream inStream) {
 32         if (inStream != null) {
 33             this.inStream = inStream;
 34             DocumentBuilderFactory domfac = DocumentBuilderFactory
 35                     .newInstance();
 36             try {
 37                 DocumentBuilder domBuilder = domfac.newDocumentBuilder();
 38                 Document doc = domBuilder.parse(inStream);
 39                 root = doc.getDocumentElement();
 40             } catch (ParserConfigurationException e) {
 41                 e.printStackTrace();
 42             } catch (SAXException e) {
 43                 e.printStackTrace();
 44             } catch (IOException e) {
 45                 e.printStackTrace();
 46             }
 47         }
 48     }
 49 
 50     public XmlParser(String path) {
 51         InputStream inStream = null;
 52         try {
 53             inStream = new FileInputStream(path);
 54         } catch (FileNotFoundException e1) {
 55             e1.printStackTrace();
 56         }
 57         if (inStream != null) {
 58             this.inStream = inStream;
 59             DocumentBuilderFactory domfac = DocumentBuilderFactory
 60                     .newInstance();
 61             try {
 62                 DocumentBuilder domBuilder = domfac.newDocumentBuilder();
 63                 Document doc = domBuilder.parse(inStream);
 64                 root = doc.getDocumentElement();
 65             } catch (ParserConfigurationException e) {
 66                 e.printStackTrace();
 67             } catch (SAXException e) {
 68                 e.printStackTrace();
 69             } catch (IOException e) {
 70                 e.printStackTrace();
 71             }
 72         }
 73     }
 74 
 75     public XmlParser(URL url) {
 76         InputStream inStream = null;
 77         try {
 78             inStream = url.openStream();
 79         } catch (IOException e1) {
 80             e1.printStackTrace();
 81         }
 82         if (inStream != null) {
 83             this.inStream = inStream;
 84             DocumentBuilderFactory domfac = DocumentBuilderFactory
 85                     .newInstance();
 86             try {
 87                 DocumentBuilder domBuilder = domfac.newDocumentBuilder();
 88                 Document doc = domBuilder.parse(inStream);
 89                 root = doc.getDocumentElement();
 90             } catch (ParserConfigurationException e) {
 91                 e.printStackTrace();
 92             } catch (SAXException e) {
 93                 e.printStackTrace();
 94             } catch (IOException e) {
 95                 e.printStackTrace();
 96             }
 97         }
 98     }
 99 
100     /**
101      * 
102      * @param nodes
103      * @return 单个节点多个值以分号分隔
104      */
105     public Map<String, String> getValue(String[] nodes) {
106         if (inStream == null || root==null) {
107             return null;
108         }
109         Map<String, String> map = new HashMap<String, String>();
110         // 初始化每个节点的值为null
111         for (int i = 0; i < nodes.length; i++) {
112             map.put(nodes[i], null);
113         }
114 
115         // 遍历第一节点
116         NodeList topNodes = root.getChildNodes();
117         if (topNodes != null) {
118             for (int i = 0; i < topNodes.getLength(); i++) {
119                 Node book = topNodes.item(i);
120                 if (book.getNodeType() == Node.ELEMENT_NODE) {
121                     for (int j = 0; j < nodes.length; j++) {
122                         for (Node node = book.getFirstChild(); node != null; node = node
123                                 .getNextSibling()) {
124                             if (node.getNodeType() == Node.ELEMENT_NODE) {
125                                 if (node.getNodeName().equals(nodes[j])) {
126                                     //String val=node.getFirstChild().getNodeValue();
127                                     String val = node.getTextContent();
128                                     System.out.println(nodes[j] + ":" + val);
129                                     // 如果原来已经有值则以分号分隔
130                                     String temp = map.get(nodes[j]);
131                                     if (temp != null && !temp.equals("")) {
132                                         temp = temp + ";" + val;
133                                     } else {
134                                         temp = val;
135                                     }
136                                     map.put(nodes[j], temp);
137                                 }
138                             }
139                         }
140                     }
141                 }
142             }
143         }
144         return map;
145     }
146 
147 }
View Code

附上各种API的查询地址:http://hi.baidu.com/jugdwgozjnbjuvq/item/86b8d6041be5f611acdc7007

一哥们的经历颇有感同身受的味道:http://blog.csdn.net/dragon08/article/details/7666172

关于谷歌API的调用和整个工程代码可以来这里下载http://download.csdn.net/detail/draem0507/5370763

 

 

 

 

 

posted @ 2013-05-13 22:54  draem0507  阅读(1837)  评论(0编辑  收藏  举报
View Code