移動端通過H5 獲取經緯度

1、通過以下代碼 獲取經緯度

  getlocationpoint()

  function getlocationpoint() {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(
        function (position) {
          latitude = position.coords.latitude; //獲取緯度
          longitude = position.coords.longitude; //獲取經度
          alert(latitude)
        });
    } else {
      alert("不支持定位功能");
    }
  }

 

2、方法1有一個弊端:ios下需要訪問https域名下的網址纔可以生效。

因此如果項目是運行在微信瀏覽器中,那麼可以直接接入微信sdk,調用微信自帶的過去經緯度方法,並通過百度地圖的api進行將經緯度轉爲真是座標

  wx.ready(function () {
    wx.getLocation({
      type: 'wgs84', // 默認爲wgs84的gps座標,如果要返回直接給openLocation用的火星座標,可傳入'gcj02'
      success: function (res) {
        var latitude = res.latitude; // 緯度,浮點數,範圍爲90 ~ -90
        var longitude = res.longitude; // 經度,浮點數,範圍爲180 ~ -180。
        // 不準確的經緯度
        setCookie("lngHome1", longitude)
        setCookie("latHome1", latitude)
        var speed = res.speed; // 速度,以米/每秒計
        var accuracy = res.accuracy; // 位置精度
        var point = new BMap.Point(getCookie("lngHome1"), getCookie("latHome1"))
        translateCallback = function (point) {
          // setCookie("lngHome", point.lng)
          // setCookie("latHome", point.lat)
          // 定位的經緯度
          setCookie("Locallng", point.lng)
          setCookie("Locallat", point.lat)
        }
        setTimeout(function () {
          BMap.Convertor.translate(point, 0, translateCallback); //真實經緯度轉成百度座標
        }, 100);

        setInterval(function () {
          var geoc = new BMap.Geocoder();
          var ggPoint = new BMap.Point(getCookie("lngHome1"), getCookie("latHome1"))
          var pt = ggPoint;
          geoc.getLocation(pt, function (rs) {
            var addComp = rs.addressComponents;
            // setCookie("cityHome", addComp.city)

            setCookie("LocalCity", addComp.city)
            setCookie("provinceHome", addComp.province)
          });
        }, 100)
      }

    });
  });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章