移动端通过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)
      }

    });
  });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值