H5获取当前位置信息

需求:vue项目 在小程序中,需要在h5页面获取当前位置的详细信息

在index.html页面添加如下链接

在页面代码中

 <script charset="utf-8" src="https://apis.map.qq.com/tools/geolocation/min?key=xxxxxxx&referer=xxxxxxxx"></script>
   <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.min.js"> </script>
 // h5 获取定位
    getMyLocation() {
      let vm = this;
      let TMapAPPName = "";
      let TMapKEY = "";//你的腾讯地图密钥
      let geolocation = new qq.maps.Geolocation(
        TMapKEY,
        TMapAPPName
      );
      /**
       * getLocation(sucCallback, errCallback, [options: {timeout: number, failTipFlag: boolean}])
       * sucCallback为定位成功回调函数,必填;
       * errCallback为定位失败回调函数,选填,如果不填,请设为null;
       * options为定位选项,选填,可以通过timeout参数设置定位的超时时间,默认值为10s;
       * failTipFlag: 是否在定位失败时给出提示引导用户打开授权或打开定位开关。(即将支持)
       */
      let options = {
        timeout: 9000,
        failTipFlag: true,
      };

      geolocation.getLocation(
        function (position) {
          console.log("定位成功" + vm.geoTimes + " current_location", position);
         vm.location=position.addr
         vm.latitude=position.lat
         vm.longtitude=position.lng
        
        },
        function (err) {
          vm.location='xx市'
          vm.latitude=xx //给个默认的经纬度信息,注意不是字符串是number类型
          vm.longtitude=xx
          
        },
        options
      );
    },

### H5 页面使用高德 API 获取用户当前位置信息 为了在H5页面中通过高德API获取用户的当前地理位置,需要按照特定的流程来设置和调用相应的JavaScript API。这涉及到引入必要的库文件、初始化地图对象以及处理位置回调函数。 #### 加载高德JS API 并 初始化 首先,在HTML文档头部加载来自高德的地图服务脚本,并指定版本号与开发者密钥(Key),同时定义一个全局变量作为初始化完成后的回调入口: ```html <script type="text/javascript" src="//webapi.amap.com/maps?v=1.4.15&key=您的高德应用AK"></script> <script type="text/javascript"> function initMap() { var map = new AMap.Map('container', {}); // 调用定位插件 var geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 10000 //超过10秒后停止定位,默认:无穷大 }); map.addControl(geolocation); geolocation.getCurrentPosition(function(status,result){ if(!result || result.info !== 'SUCCESS') {return;} console.log(result.position); // 输出经纬度坐标 // 可在此处继续执行其他操作... }); } </script> ``` 上述代码片段展示了如何创建一个新的`Geolocation`实例[^1],并通过其提供的`getCurrentPosition()`方法尝试获得设备的位置数据。一旦成功接收到响应,则会打印出具体的地理坐标到控制台。 #### 处理跨域请求权限问题 值得注意的是,当应用程序试图访问某些敏感资源如GPS信号时,可能会遇到浏览器的安全策略限制。因此建议确保项目已正确配置CORS(Cross-Origin Resource Sharing),并且对于HTTPS站点来说尤为重要[^2]。 另外还需注意检查manifest.json中的相关配置项是否已经开启允许定位功能,并且确认所使用的第三方服务商(比如这里提到的高德)的应用程序秘钥已被妥善填入[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值