K9 通用版 博客版 主题版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 帮助 错误 其他
+新建主题 [Ajax]
填写帐号密码即可完成注册
+新建话题 最新回复排序 最新主题排序 精华帖子

再也不用采天气信息了.中国天气有插件了

123Next >

pktsandy 发表于:12-12-14 15:29 [添加收藏] 楼主 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人

http://cj.weather.com.cn/gadget/config.aspx?id=4


可以设置默认地区,还可以自动跟踪地区

pktsandy 发表于:12-12-14 15:31 沙发 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
我写了个采集腾讯天气的js:

var TW=function(){
this.info=null;
this.ico='bigImg';
};
TW.weatherTxt =['晴', '多云', '阴', '阵雨', '雷阵雨', '雷阵雨并伴有冰雹', '雨夹雪', '小雨', '中雨', '大雨', '暴雨', '大暴雪', '特大暴雪', '阵雪', '小雪', '中雪', '大雪', '暴雪', '雾', '冻雨', '沙尘暴', '小雨-中雨', '中雨-大雨', '大雨-暴雨', '暴雨-大暴雨', '大暴雨-特大暴雨', '小雪-中雪', '中雪-大雪', '大雪-暴雪', '浮尘', '扬沙', '强沙尘暴', '飑', '龙卷风', '弱高吹雪', '轻雾'];
TW.windDir = ['', '东北风', '东风', '东南风', '南风', '西南风', '西风', '西北风', '北风', '旋转不定'];
TW.windPower = ['微风', '3-4级', '4-5级', '5-6级', '6-7级', '7-8级', '8-9级', '9-10级', '10-11级', '11-12级'];
TW.ico = 'http://mat1.gtimg.com/weather/weatherIco/{:ico}/{:code}.png';

TW.prototype.init = function(c){
var self=this;
var url='http://weather.gtimg.cn/city/'+c+'.js?ref=qqchannel';
var ele='#'+this.info;

$.getScript(url, function(data, textStatus){
if(textStatus=='success'){
var wInfo = __weather_city;
var s='<ul>';
var imageIco='';

if (TW.weatherTxt[Math.abs(wInfo.sk_wt)] != undefined) {
var vi=Math.abs(wInfo.sk_wt);

var imurl=TW.ico.replace('{:ico}',self.ico);
imurl=(self.ico=='bigImg')?imurl.replace('{:code}',vi):imurl.replace('{:code}','m'+vi);

imageIco+='<dt><img src="'+imurl+'" title="'+TW.weatherTxt[vi]+'"/></dt>';
s+='<li>'+TW.weatherTxt[vi]+',</li>';
}
var hwt=wInfo.wk['0'][0].tmin;
if(hwt==='NULL') hwt=wInfo.wk['0'][0].tmax;
s+='<li>'+hwt+'℃,</li>';

if (TW.windDir[wInfo.sk_wd] != undefined) {
s+='<li>'+TW.windDir[wInfo.sk_wd]+'</li>';
}
if (TW.windPower[wInfo.sk_wp] != undefined) {
s+='<li>('+TW.windPower[wInfo.sk_wp]+')</li>';
}
s+='</ul>';
if(imageIco.length>0) s='<dl>'+imageIco+'<dd>'+s+'</dd></dl>';

$(ele).empty().append(s).find('li').css({'display':'inline','list-style':'none'});
}
});
};
TW.prototype.setContainer = function(ct){
this.info=ct;
$('#'+ct).append($('<div></div>').attr('id','wlayer').css({
'text-align':'center',
'width':'100%',
'height':'30px',
'line-height':'30px',
'color':'#999'
}).text('天气信息正在传输'));

return this;
};
TW.prototype.isBigWeatherImage=function(b){
if(!b) this.ico='midImg';
return this;
};
TW.prototype.queryAddressWeather = function(){
var self=this;
//得到地区和省份
this.getUserGeoPosition(function(p,c){
if(c.length==0){
$('#'+self.info).text('无法加载天气,快到用户中心设置通信地址吧').css({'color':'#fff','padding-top':'10px','padding-bottom':'10px','text-align':'center','background-color':'#f00'});
return;
}
try{
//得到code
$.getScript('http://weather.news.qq.com/index2012/js/cityDir_v7.js', function(data, textStatus){
if(textStatus=='success'){
var swt = Site.Weather;
//p和c可能是近似
var swt_code=null;

for(var sc in swt.city){
//找到省
if(sc.indexOf(p)!=-1){
//找到市
for(var sd in swt.city[sc]){
if(sd.indexOf(c)!=-1){
swt_code=swt.city[sc][sd];
break;
}
}
if(!swt_code) swt_code=swt.city[sc]['_'];
break;
}
}
self.init(swt_code);
}
});
}catch (e){}
});
};
TW.prototype.resetGeoPosition = function(code){
this.init(code);
};
TW.prototype.getUserGeoPosition=function(cb){
$.getJSON('/address/?do=transfer',function(json){
cb(json.province,json.city);
});
};
pktsandy 发表于:12-12-14 15:35 板凳 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
getUserGeoPosition查询会员所在地区,返回一个json{"province":'xxxx',"city":'xxxx'}

init根据地区代码显示天气信息

setContainer 设置天气信息在哪个 dom中显示,参数是dom id的值

isBigWeatherImage设置天气的图片是大还是小
pktsandy 发表于:12-12-14 15:38 4楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
调用示例:

new TW().setContainer('weather_container').init('01012315');//01012315为腾讯天气烟台的代码

截图:

再也不用采天气信息了.中国天气有插件了[图1]
pktsandy 发表于:12-12-14 15:40 5楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
new TW().setContainer('right_weather').isBigWeatherImage(false).queryAddressWeather();

截图:



再也不用采天气信息了.中国天气有插件了[图1]
pktsandy 发表于:12-12-14 15:42 6楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
用户地区的设置:


再也不用采天气信息了.中国天气有插件了[图1]
pktsandy 发表于:12-12-14 15:52 7楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
代码可视更友好的连接:http://blog.csdn.net/xiaofanku/article/details/8295723
Laowang 发表于:12-12-14 16:21 8楼 [回复] #Top#
Laowang 人气:495 积分:1329 金币:19470
KC元老
做个链接就成的小事情,你写这多代码,不是浪费时间吗
pktsandy 发表于:12-12-14 20:00 9楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
连接是什么?自已动手写的收获要多于连接
szjx000 发表于:12-12-14 20:30 10楼 [回复] #Top#
szjx000 人气:0 积分:3 金币:30
这个好久之前就已经有的啦。

123Next >

发表回复

帐号 匿名发布 审核后可见 [加载完整在线编辑器]
内容
验证码
KingCMS 内容管理系统

关于我们 联系我们 广告报价 付款方式 站点导航

Copyright © 2004-2015 Focuznet All rights reserved.

广州唯众网络科技有限公司 粤ICP备08008106号

中奖了!