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>