2. 图片接口 http://m.weather.com.cn/img/b0.gif http://www.weather.com.cn/m2/i/icon_weather/29x20/n00.gif 这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,29*20像素,n打头的是夜间反白图标,29*20像素,注意这里的文件名是两位数字! 也许还有更多的图标,等待大家发掘啦~
3. JSON接口 真没想到~居然有JSON接口~JSON在iPhone上分析起来要比XML简单很多 这个是北京的JSON数据,那个HTML的名字是根据上文XML中的url得到的。这个JSON中包含了实时数据、7天天气预报、气象指数等丰富的数据
获取省级代码:?level=1
获取城市代码(比如安徽是22):?level=2
获取区域代码(比如安庆是2206):?level=3
获取到安徽省安庆市望江县的代码是220607
然后去加上中国代码请求URL:
就可以获取当地天气。
另外再给几个有用的探索得到的URL:
天气 FLASH实况:
实况FLASH:?id=101220607
三级选择菜单(注明,这里有四个INPUT,其中有一个被隐藏了,可用FIREFOX改下源代码查看):
实时天气(很有用哦):
通过城市名称去的cityid是可以的,api如下:
“?callback=jsonp1342857491709&_=1342857620727&language=zh&keyword=”+城市名称
北京应该GET以下网址:?callback=jsonp1343396048201&_=1343396067262&language=zh&keyword=%E5%8C%97%E4%BA%AC
这里城市名称可以使中文也可以是拼音,不过只支持中国范围内的城市;如果中文城市名的话需要进行URLEncoder进行编码。
以上海示例,得到jsonp数据如下:
jsonp1342857491709({"p":[{"n":"上海","i":"shanghai","t":"p"}],"i":[{"n":"上海","d":"上海","i":"101020100","t":"i"}]});
其中“i”:"101020100"就是cityid了,然后使用LZ听过的API进行天气查询。
图片接口 ://m.weather.com.cn/img/b0.gif ://www.weather.com.cn/m2/i/icon_weather/29x20/n00.gif 这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,29*20像素,n打头的是夜间反白图标,29*20像素,注意这里的文件名是两位数字!
地理反编译,用的是谷歌的接口,可以根据经纬度得到城市
ASIHTTPRequest *request=[ASIHTTPRequestrequestWithURL:[NSURLURLWithString:@"http://maps.google.com/maps/api/geocode/json?latlng=39.993956,116.362278&language=zh-CN&sensor=true"]];
用JSON解析
NSString *str=[[[[[[request.responseStringobjectFromJSONString]objectForKey:@"results"]objectAtIndex:0]objectForKey:@"address_components"]objectAtIndex:3]objectForKey:@"short_name"];
最后得到北京