
微信小程序开发可根肢码据 getLocation 获取用户的地理位置信息,包含经纬度、移动速度、海拔信息,也可使用 onLocationChange 实时获取位置。测试了一下,坐标和海拔还是比较准确的。
鉴于部分同学提到坐标误差大的问题:其一,可能是在开发者工具中遇到该问题,原因是电脑中没有gps模块,无法准确获取位置,一般通过ip定位到行政区域;其二,坐标格式没有正确使用,微信提供了两种格式 wgs84 和 gcj02 ,前者是全球GPS系统使用的标准格式,后者是中国测绘局公布的国标,两者定位岩扒有一定偏差。这就要求开发者以何种方式获取的坐标,就应以何种方式解析;也可对坐标转换后再解析。
对于用户已授权定历枣哪位的可直接通过以下方式获取:
对于不确定用户是否已开启定位权限的,应该分两种情况处理:
1、用户从未同意或拒绝授权定位权限的,可直接通过 authorize 发起授权,授权成功后即可获取位置信息。
2、由于微信为了更好的用户体验,当用户第一次放弃授权定位权限后,在此后使用的过程中,不会再向用户发起授权。这就需要引导用户开启定位权限。若 authorize 时提示 authorize:fail ... ,可通过 openSetting 引导用户开启授权,用户授权后即可获取位置信息
实时位置信息同样需要用户授权;
微信提供了 onLocationChange 来监听实时位置信息,需要结合 stopLocationUpdate ( 小程序前台运行时监听 )、 startLocationUpdateBackground ( 小程序前后台运行时监听 ) 使用,如下:
注:实时定位反应稍微慢一点,一般五秒后才能返回新的坐标,原因是多方面的,比如天气、建筑物、数据传输、数据处理等等。
地图组件用于展示地图,而定位API只是获取坐标,请勿混淆两者,下面这篇文章主要给大家介绍了关于如何使用Uniapp实现微信小程序的GPS定位打卡的相关资料,需要的朋友可以参考下写在开头
哈喽,隔了几天没写文章,小编又回来了(ω)。最近接了一个校园的需求,主要功能是希望学生每天进行定位打卡,帮助毁册班导确认学生是否在校的情况。
上面图片是大致的交互过程,定位打卡是个比较常见的功能了,只是很多时候都是在 APP 上完成的,这次需求方是希望专门做个小程序来使用,当然,整个小程序还有其他很多功能模块,本章我们先来分享一下定位打卡功能,前端具体需要做哪些事情。
开通相关API权限
首先,因为这次定位打卡功能使用的是 GPS 来定位的,这就需要获取用户的地理位置信息。在小程序中,要纤闹宏获取用户的地理位置,微信官方提供了部分 API ,但是这些 API 有权限要求,我们需要先登陆 小程序后台 去申请。
登陆后,按路径「开发」-「开发管理」-「接口设置」中找到相关 API ,填写你使用 API 的理由,提交申请即可。
本次的功能小编一共会使用到了以下两个 API :
wx.chooseLocation:用于打开微信小弯早程序自带的地图,能选择一个位置,获取目标位置的经纬度。
wx.getLocation:用于获取用户当前所在的地理位置信息,主要为了拿到经纬度;不过,这个 API 有点难申请通过,小编也是申请了三次才过的,真是挺麻烦-.-,好像一般小程序主体是政府、学校或者大企业等机构就比较容易通过(●—●)。
API 权限申请好了后,我们就能进入正题了,开始正式的编码工作
正常来说野神,如果某个小程序需梁悄要你授权位置信橡脊渣息,会在使用时d出授权申请窗口,点击确定即可完成授权。如果是之前拒绝过或者自己想要 *** 作授权的,可以按照下面的步骤自己去主动开启授权。
点击进入小程序——点击右上角【…】图标—— 先点击右上角的【…】——点击底部的“设置”进入权限设置界面——点击位置信息——勾选在使用小程序期间使用,即可完成授权位置信息。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)