JavaScript实时全国天气 ,自动定位城市

JavaScript实时全国天气 ,自动定位城市,

  • 采用百度api定位
  • 新浪天气接口获取当前城市天气
    这里写图片描述

项目地址参考github地址:项目示例


js代码片段

//获取位置
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}else{
alert(‘不支持获取位置’);
}
}
//显示地图
function showPosition(position){
// 百度地图API功能
var map = new BMap.Map(“allmap”);
var point = new BMap.Point(position.coords.longitude,position.coords.latitude);
map.centerAndZoom(point,12);
var myCity = new BMap.LocalCity();
myCity.get(myFun);
}
//获取市
function myFun(result){
var city = result.name;
if(city && city.indexOf(‘市’) !=-1){
city = city.replace(/市/, “”);
}else{
city =”“;
}
alert(‘city:’+city);
getWea(city);

 }

function getWea(cityName){
      //新浪接口  city=城市或者缩写,不输入自动识别城市
        $.getScript('http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=0&city='+ cityName+'&dfc=1&charset=utf-8',function(a){
        var s="",r="",q="";
        for(s in window.SWther.w){
            q=SWther.w[s][0];
            r={city:s,date:SWther.add.now.split(" ")[0]||"",day_weather:q.s1,night_weather:q.s2,day_temp:q.t1,night_temp:q.t2,day_wind:q.p1,night_wind:q.p2};
            console.log(r);
        var default_tr=false;
            var default_img='./wea_img/default.png';
                if(q.s1.indexOf('到') !=-1 && q.s1.indexOf('转') !=-1 ){  //有转有到 取转
                    var wea_one =q.s1.split('转'); 
                        q.s1 =wea_one[1]; 
                        console.log("转:"+q.s1);    
            }else{
                if(q.s1.indexOf('到') !=-1 || q.s1.indexOf('转') !=-1 ){ 
                            if(q.s1.indexOf('到') !=-1){  
                                    var wea_one =q.s1.split('到'); 
                                    q.s1 =wea_one[1]; 
                                    console.log("到:"+q.s1);
                            }else{
                                var wea_one =q.s1.split('转'); 
                                    q.s1 =wea_one[1]; 
                                    console.log("转:"+q.s1);
                            }

                }
            }

            //匹配
            for(var i=0; i<dataList.length;i++){
                if(dataList[i].weather.indexOf(q.s1) !=-1){
                    console.log(dataList[i].weather);
                    var img_url =dataList[i].img;
                    $('#imgs').attr('src',img_url);
                    default_tr =true ;
                    break;
                }
            }
            //没有匹配
            if(!default_tr){
            $('#imgs').attr('src',default_img);
            }

            //温度
            var warm_html ="";
            if(r.day_temp>r.night_temp){
                warm_html = r.night_temp+"~"+ r.day_temp;
            }else{
                warm_html = r.day_temp+"~"+ r.night_temp;
            }
            $("#city").html(r.city);
            $("#warm").html(warm_html+"℃");
        }
    });
}

getLocation();
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值