您好,登錄后才能下訂單哦!
本文實例講述了JS獲取本地地址及天氣的方法。分享給大家供大家參考,具體如下:
一、獲取本地的地址
第一種方式:
1、利用瀏覽器獲取當前位置的經緯度
window.onload=getCurrentPosition; //瀏覽器獲取當前位置 function getCurrentPosition() { if (window.navigator.geolocation) { var options = { enableHighAccuracy: true, }; window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options); }else { alert("瀏覽器不支持html5來獲取地理位置信息"); } }
2、瀏覽器獲取到的是GPS坐標,需要轉換成城市名稱再通過城市獲取天氣:
//成功獲取時調用的函數 function handleSuccess(position) { // 獲取到當前位置經緯度 本例中獲取到的是gps坐標系 //經度 var lng = position.coords.longitude; //緯度 var lat = position.coords.latitude; //轉換成百度坐標系 //將請求發送給‘ var ggPoint = new BMap.Point(lng, lat); //地圖初始化 var bm = new BMap.Map(); //坐標轉換完之后的回調函數 translateCallback = function (data) { if (data.status === 0) {//回調成功 var marker = new BMap.Marker(data.points[0]); var myGeo = new BMap.Geocoder(); var baiduPoint = new BMap.Point(data.points[0].lng, data.points[0].lat); //將經緯度轉換成城市 myGeo.getLocation(baiduPoint, getCityByCoordinate); } } setTimeout(function () { var convertor = new BMap.Convertor(); var pointArr = []; pointArr.push(ggPoint); convertor.translate(pointArr, 3, 5, translateCallback) }, 2000); } function getCityByCoordinate(result) { var gpsAadress=result.addressComponents; var city=gpsAadress.city; //將轉換之后的城市傳入獲取天氣的函數做參數 getWeatherDatas(city); return city; } function handleError() { log('地點定位出錯'); }
第二種方式:
1、利用百度API通過IP地址獲取本地地址
//通過百度的 IP地址獲取本地地址 window.onload=getCurrentPosit; function getCurrentPosit() { var map = new BMap.Map('getCity'); function myFun(result){ var cityName = result.name; getWeatherDatasFun(cityName); map.setCenter(cityName); alert("當前定位城市:"+cityName); } var myCity = new BMap.LocalCity(); myCity.get(myFun);
2、通過城市獲取天氣數據:
function getWeatherDatas(city) { var url='http://route.showapi.com/9-2?'; if(city===undefined || city===""){ log('您還未輸入') }else { $.ajax({ type: 'post', url: url, dataType: 'jsonp', data: { "showapi_timestamp": new Date().getTime(), "showapi_appid": '44277', //這里需要改成自己的appid "showapi_sign": '9987d6dff19e482488b33dc8ed70f6e9', //這里需要改成自己的應用的密鑰secret, "area":city }, jsonp: 'jsonpcallback', //這個方法名很重要,不能改變 error: function(XmlHttpRequest, textStatus, errorThrown) { log("操作失敗,請重試!"+errorThrown); }, success: function(result) { //解析獲取到的天氣數據 console.log('The Weather datas: ',result); } }); } }
更多關于JavaScript相關內容還可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript數組操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript操作DOM技巧總結》及《JavaScript字符與字符串操作技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。