欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

uniapp踩坑(四):android中引入高德地图,实时定位(精度)遇到的问题及解决方法

程序员文章站 2022-03-18 10:53:59
一、hbuilder直接连手机测试(要不要高德的key都可以)1、测试:没有申请高德地图的key,同时在代码中也没有引入key,但是定位可以实现,且精确。2、存在疑问:那申不申请key,代码中引不引入key,同时在manifest.json中不配置maps好像对定位精准度都没有影响(确实如此,不用)。3、解决及原因:uniapp官网目前在安卓平台上集成的是高德地图,直接使用uni.getlocation就可以获取到定位,无需引入key。4、代码如下:uni.getLocation({ //...

一、hbuilder直接连手机测试(要不要高德的key都可以)
1、测试:没有申请高德地图的key,同时在代码中也没有引入key,但是定位可以实现,且精确。
2、存在疑问:那申不申请key,代码中引不引入key,同时在manifest.json中不配置maps好像对定位精准度都没有影响(确实如此,不用)。
3、解决及原因
uniapp官网目前在安卓平台上集成的是高德地图,直接使用uni.getlocation就可以获取到定位,无需引入key。
4、代码如下

uni.getLocation({
  // map组件默认为国测局坐标gcj02,调用 uni.getLocation返回结果传递给组件时,需指定 type 为 gcj02 
      type: 'gcj02',
      geocode: true,
      success: ({ longitude, latitude }) => {
          // 定位得到的经纬度
          console.log('当前位置的经度:' + longitude)
          console.log('当前位置的纬度:' + latitude)
          this.longitude = longitude
          this.latitude = latitude
          // 画出定位位置
          this.markers[0] = {
              longitude,
              latitude,
              title: '我的位置',
              iconPath: '/static/images/icons/myLocation.png'
          }
      }
  })

二、运行到自定义基座上(必须配置高德地图)
1、必须有高德申请的key
在高德开放平台提交资料,获取key(小程序申请小程序的key,android申请android的key,ios对应ios的key,不可混用)(注意,自定义基座调试时,必须appid,包名,key都对应,否则报签名不一致)
2、manifest.json中必须配置
uniapp踩坑(四):android中引入高德地图,实时定位(精度)遇到的问题及解决方法
我这里勾选了自动添加第三方所需要的权限,所以这部分就不用管,若没有勾选,则需要自己手动添加。
uniapp踩坑(四):android中引入高德地图,实时定位(精度)遇到的问题及解决方法
3、以下三个方法(uniapp,web,和小程序)定位精度相似

采用uni.getlocationplus.geolocation.watchPosition,和
小程序中的amapPlugin.getRegeo方法,其对应的定位精度相似。

三、踩坑之处:
刚开始做的是小程序(引入的是小程序的key,和amaps-wx.js文件,高德官方就有),然后定位不准,误差在500米左右(误差太大了)。然后就想着是不是定位的方法不对,于是就试上面三种方法(主要是想看这三种那个定位更准),发现连手机测试后三个方法的定位都差不多,且精准,但采用自定义基座测试后,就有误差,最后,发现是自己没有在manifest.json中配置maps,当然,配置正确的appid,key,和包名后基座测试,一切ok。

本文地址:https://blog.csdn.net/HYilalala/article/details/109626629