中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS獲取本地地址及天氣的方法實例小結

發布時間:2020-09-08 14:42:55 來源:腳本之家 閱讀:570 作者:zhy前端攻城獅 欄目:web開發

本文實例講述了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程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

若尔盖县| 青河县| 志丹县| 瑞金市| 石台县| 东阳市| 洞头县| 牟定县| 宜章县| 巴中市| 甘孜县| 安乡县| 怀仁县| 屯门区| 巴东县| 东乌珠穆沁旗| 兰州市| 磐安县| 吴桥县| 武城县| 黄骅市| 佛冈县| 柳林县| 鱼台县| 武清区| 通山县| 富宁县| 江北区| 新竹市| 灌云县| 庆元县| 珲春市| 荆州市| 铅山县| 林芝县| 浦县| 苍梧县| 临沂市| 安图县| 永仁县| 江孜县|