2024-06-24 百度地图的使用及gps定位坐标获取

1.百度地图的使用教程

2. 定位功能的实现

第一种:通过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,由于定位获取需要用户手动给权限,所以需要做鉴权处理,使用方式详见官方手册。
API:HWH5.getLocation - welink使用手册

//地图加载
    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);
        });
      })
    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要调用第三方库(如高德地图或百度地图)来获取GPS定位数据,你可以按照以下步骤进行: 1. 注册开发者账号:前往所选择的地图服务提供商的官方网站,注册一个开发者账号并创建一个应用程序。这些地图服务提供商通常会提供开发者文档和API密钥。 2. 获取API密钥:在你的开发者账号中,获取相应地图服务提供商的API密钥。这个密钥将用于身份验证和访问地图服务的权限。 3. 集成第三方库:根据你选择的地图服务提供商,下载并集成相应的第三方库到你的虚幻引擎项目中。这些第三方库通常会提供API接口和函数,用于获取GPS定位数据和其他地图相关功能。 4. 初始化地图服务:在你的虚幻引擎项目中,使用你的API密钥初始化地图服务。这可以通过调用相应第三方库提供的初始化函数来实现。 5. 请求GPS定位使用第三方库的函数来请求获取GPS定位数据。这些函数通常会返回设备的经度、纬度和其他相关位置信息。 6. 处理定位数据:将获取到的GPS定位数据与虚幻引擎中的逻辑进行对接。你可以将获取到的GPS数据转换为虚幻引擎中的坐标系统,并使用它们来定位场景或进行其他操作。 需要注意的是,具体的实现细节和函数调用方式可能因你选择的第三方库而有所不同。你需要参考相应地图服务提供商的文档和示例代码,以了解如何正确调用API接口和函数。此外,还要记得处理GPS定位过程中的错误和异常情况,以保证应用程序的稳定性和用户体验。 另外,也要注意遵守所选择地图服务提供商的使用条款和开发者政策,以确保你的应用程序在合规范围内使用地图服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值