<legend id='6fiKE'><style id='6fiKE'><dir id='6fiKE'><q id='6fiKE'></q></dir></style></legend>
    1. <tfoot id='6fiKE'></tfoot>
    2. <small id='6fiKE'></small><noframes id='6fiKE'>

      • <bdo id='6fiKE'></bdo><ul id='6fiKE'></ul>
      <i id='6fiKE'><tr id='6fiKE'><dt id='6fiKE'><q id='6fiKE'><span id='6fiKE'><b id='6fiKE'><form id='6fiKE'><ins id='6fiKE'></ins><ul id='6fiKE'></ul><sub id='6fiKE'></sub></form><legend id='6fiKE'></legend><bdo id='6fiKE'><pre id='6fiKE'><center id='6fiKE'></center></pre></bdo></b><th id='6fiKE'></th></span></q></dt></tr></i><div id='6fiKE'><tfoot id='6fiKE'></tfoot><dl id='6fiKE'><fieldset id='6fiKE'></fieldset></dl></div>

      gps定位坐标获取的几种常见方式

      时间:2024-11-22

        <bdo id='THPbp'></bdo><ul id='THPbp'></ul>
        <legend id='THPbp'><style id='THPbp'><dir id='THPbp'><q id='THPbp'></q></dir></style></legend>
        1. <i id='THPbp'><tr id='THPbp'><dt id='THPbp'><q id='THPbp'><span id='THPbp'><b id='THPbp'><form id='THPbp'><ins id='THPbp'></ins><ul id='THPbp'></ul><sub id='THPbp'></sub></form><legend id='THPbp'></legend><bdo id='THPbp'><pre id='THPbp'><center id='THPbp'></center></pre></bdo></b><th id='THPbp'></th></span></q></dt></tr></i><div id='THPbp'><tfoot id='THPbp'></tfoot><dl id='THPbp'><fieldset id='THPbp'></fieldset></dl></div>

          <small id='THPbp'></small><noframes id='THPbp'>

            <tbody id='THPbp'></tbody>
          <tfoot id='THPbp'></tfoot>
              • 第一种:通过h5自带定位获取当前gps坐标
                        var options = {
                          enableHighAccuracy: true,
                          timeout: 5000,
                          maximumAge: 0
                        };
                        
                        function success(pos) {
                          var crd = pos.coords;
                          alert(crd.latitude+'---'+crd.longitude+'---'+crd.accuracy);
                          console.log(`经度:${crd.latitude}`);
                          console.log(`纬度:${crd.longitude}`);
                          console.log(`误差:${crd.accuracy} 米`);
                        }
                        
                        function error(err) {
                          console.log(err);
                          alert(err);
                          console.warn(`ERROR(${err.code}): ${err.message}`);
                        }
                        
                        navigator.geolocation.getCurrentPosition(success, error, options);
                
                第二种:通过野生接口获取(不推荐)
                因为如果平时用着玩没问题,一旦部署会引起跨域问题,需要后端或平台将接口添加白名单,另外的缺点是不稳定
                    request({
                      url: 'http://ipwho.is/', // 野生gps定位接口
                      method: 'get',
                    }).then(res => {
                      this.CountryOptions.forEach((item, index) => {
                        if (item.remark) {
                          let remark = JSON.parse(item.remark);
                          if (remark.en_code_short == res.country_code) {
                            this.countryName = remark.cn_name_short;
                          }
                        }
                
                      })
                      this.locations.lat = res.latitude;
                      this.locations.lng = res.longitude
                    })
                
                第三种:通过平台提供的位置定位api(需要鉴权)

                本项目为移动端项目,发布到welink平台中进行测试,本次定位使用了平台提供的api,由于定位获取需要用户手动给权限,所以需要做鉴权处理,使用方式详见官方手册。
                //地图加载
                    handler({
                      BMap,
                      map
                    }) {
                      this.BMap = BMap
                      this.map = map
                      this.center = ''
                      this.zoom = 15;
                      
                      const formData = new FormData(); // formData 格式参数
                      formData.append('url', window.location.href);
                
                      JSAPI(formData).then(response =>{  // 请求后台接口 获取鉴权信息
                      
                        // 进行鉴权
                        HWH5.config({
                          appId: response.data.appId, // 应用的client_id
                          timestamp: response.data.timestamp, // 与生成签名一致的时间戳,精确到秒十位
                          noncestr: response.data.noncestr, // 服务端使用的随机串
                          signature: response.data.signature, // 签名信息
                          jsApiList: ['getLocation']
                        })
                
                        /* 如果鉴权成功,会执行ready方法,把需要在页面加载时调用的相关接口放在ready中确保执行。
                        需要用户触发时才调用的接口,则直接调用,不需要放在ready函数中。*/
                        HWH5.ready(() => {
                          console.log('鉴权成功---');
                          HWH5.getLocation({ type: 1 }).then(res => {
                            console.log(res,'getLocationgetLocation');
                	
                			// 处理数据
                            this.CountryOptions.forEach((item, index) => {
                              if (item.remark != undefined) {
                                if (JSON.parse(item.remark).cn_name_short == res.country) {
                                  this.countryName = item.dictLabel;
                                  this.countryCode = JSON.parse(item.remark).en_code_short
                                }
                              }
                            })
                
                            this.lat = res.latitude;
                            this.lng = res.longitude;
                            this.locations.lng = this.lng;
                            this.locations.lat = this.lat;
                			
                			// 定点
                            const BMapGL = this.BMap
                            this.point = new BMapGL.Point(this.locations.lng, this.locations.lat)
                            const marker = new BMapGL.Marker(this.point)
                            map.addOverlay(marker)
                            const geoc = new BMapGL.Geocoder()
                            console.log(this.point, 300);
                            geoc.getLocation(this.point, (rs) => {
                              const addressComp = rs.addressComponents
                              this.Address = addressComp.province + addressComp.city + addressComp.district +
                                addressComp.street + addressComp.streetNumber;
                              console.log(rs, 909);
                            })
                
                          }).catch(error => {
                            console.log('获取位置信息异常', error);
                          });
                        });
                
                        // 如果鉴权失败,则调用error方法
                        HWH5.error(err => {
                          console.log('鉴权失败---', err);
                        });
                      })
                    },
                
                 
                上一篇:layui tree实现获取子节点所有值的实例代码 下一篇:没有了

                相关文章

                <small id='plW8e'></small><noframes id='plW8e'>

                <tfoot id='plW8e'></tfoot>
              • <legend id='plW8e'><style id='plW8e'><dir id='plW8e'><q id='plW8e'></q></dir></style></legend>

                1. <i id='plW8e'><tr id='plW8e'><dt id='plW8e'><q id='plW8e'><span id='plW8e'><b id='plW8e'><form id='plW8e'><ins id='plW8e'></ins><ul id='plW8e'></ul><sub id='plW8e'></sub></form><legend id='plW8e'></legend><bdo id='plW8e'><pre id='plW8e'><center id='plW8e'></center></pre></bdo></b><th id='plW8e'></th></span></q></dt></tr></i><div id='plW8e'><tfoot id='plW8e'></tfoot><dl id='plW8e'><fieldset id='plW8e'></fieldset></dl></div>
                    <bdo id='plW8e'></bdo><ul id='plW8e'></ul>