uniapp踩坑(四):android中引入高德地图,实时定位(精度)遇到的问题及解决方法
一、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中必须配置
我这里勾选了自动添加第三方所需要的权限,所以这部分就不用管,若没有勾选,则需要自己手动添加。
3、以下三个方法(uniapp,web,和小程序)定位精度相似
采用uni.getlocation和plus.geolocation.watchPosition,和
小程序中的amapPlugin.getRegeo方法,其对应的定位精度相似。
三、踩坑之处:
刚开始做的是小程序(引入的是小程序的key,和amaps-wx.js文件,高德官方就有),然后定位不准,误差在500米左右(误差太大了)。然后就想着是不是定位的方法不对,于是就试上面三种方法(主要是想看这三种那个定位更准),发现连手机测试后三个方法的定位都差不多,且精准,但采用自定义基座测试后,就有误差,最后,发现是自己没有在manifest.json中配置maps,当然,配置正确的appid,key,和包名后基座测试,一切ok。
本文地址:https://blog.csdn.net/HYilalala/article/details/109626629
上一篇: 分享我做的小红书运营计划
下一篇: 农村电商进入第二阶段,走出去难在哪?