微信小程序开发过程中获取位置信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序开发过程中获取位置信息相关的知识,希望对你有一定的参考价值。

微信小程序开发可根据 getLocation 获取用户的地理位置信息,包含经纬度、移动速度、海拔信息,也可使用 onLocationChange 实时获取位置。测试了一下,坐标和海拔还是比较准确的。

鉴于部分同学提到坐标误差大的问题:其一,可能是在开发者工具中遇到该问题,原因是电脑中没有gps模块,无法准确获取位置,一般通过ip定位到行政区域;其二,坐标格式没有正确使用,微信提供了两种格式 wgs84 和 gcj02 ,前者是全球GPS系统使用的标准格式,后者是中国测绘局公布的国标,两者定位有一定偏差。这就要求开发者以何种方式获取的坐标,就应以何种方式解析;也可对坐标转换后再解析。

对于用户已授权定位的可直接通过以下方式获取:

对于不确定用户是否已开启定位权限的,应该分两种情况处理:
1、用户从未同意或拒绝授权定位权限的,可直接通过 authorize 发起授权,授权成功后即可获取位置信息。
2、由于微信为了更好的用户体验,当用户第一次放弃授权定位权限后,在此后使用的过程中,不会再向用户发起授权。这就需要引导用户开启定位权限。若 authorize 时提示 authorize:fail ... ,可通过 openSetting 引导用户开启授权,用户授权后即可获取位置信息

实时位置信息同样需要用户授权;
微信提供了 onLocationChange 来监听实时位置信息,需要结合 stopLocationUpdate ( 小程序前台运行时监听 )、 startLocationUpdateBackground ( 小程序前后台运行时监听 ) 使用,如下:

注:实时定位反应稍微慢一点,一般五秒后才能返回新的坐标,原因是多方面的,比如天气、建筑物、数据传输、数据处理等等。

参考技术A 微信小程序开发可根据 getLocation 获取用户的地理位置信息,包含经纬度、移动速度、海拔信息,也可使用 onLocationChange 实时获取位置。测试了一下,坐标和海拔还是比较准确的。

鉴于部分同学提到坐标误差大的问题:其一,可能是在开发者工具中遇到该问题,原因是电脑中没有gps模块,无法准确获取位置,一般通过ip定位到行政区域;其二,坐标格式没有正确使用,微信提供了两种格式 wgs84 和 gcj02 ,前者是全球GPS系统使用的标准格式,后者是中国测绘局公布的国标,两者定位有一定偏差。这就要求开发者以何种方式获取的坐标,就应以何种方式解析;也可对坐标转换后再解析。

对于用户已授权定位的可直接通过以下方式获取:

对于不确定用户是否已开启定位权限的,应该分两种情况处理:
1、用户从未同意或拒绝授权定位权限的,可直接通过 authorize 发起授权,授权成功后即可获取位置信息。
2、由于微信为了更好的用户体验,当用户第一次放弃授权定位权限后,在此后使用的过程中,不会再向用户发起授权。这就需要引导用户开启定位权限。若 authorize 时提示 authorize:fail ... ,可通过 openSetting 引导用户开启授权,用户授权后即可获取位置信息

实时位置信息同样需要用户授权;
微信提供了 onLocationChange 来监听实时位置信息,需要结合 stopLocationUpdate ( 小程序前台运行时监听 )、 startLocationUpdateBackground ( 小程序前后台运行时监听 ) 使用,如下:

注:实时定位反应稍微慢一点,一般五秒后才能返回新的坐标,原因是多方面的,比如天气、建筑物、数据传输、数据处理等等。【点击了解更多加盟项目】

微信小程序开发——开通腾讯位置服务

我们在进行开发过程中常常会用到用户当前所在地址的信息,所以需要把定位坐标缓存成地址以供我们使用。位置服务这块在开发时一般选用高德、腾讯、百度这几个主流平台,我这里介绍的是如何开启腾讯的位置服务

一、腾讯位置服务的好处和用处

1、每天免费提供1万次的API调用(对于开发者来说这完全足够了,如果后续会有更多调用的话可以开通企业版)
2、可以把GPS坐标转换为真实地址
3、提供JavaScript接口

二、开通方式

1、首先我们先进入腾讯位置服务的官网:https://lbs.qq.com/

2、点击右上角的控制台然后进行用户注册或者登录,注册后进入控制台主页,左侧找到我的应用,然后点击创建应用。

3、根据你开发的小程序填写相关信息。

4、填写完毕后记录下应用的Key值,后续在开发中会用到,再点击编辑。

5、在授权ID这里填写你在微信公众平台创建的小程序的AppID。

微信公众平台https://mp.weixin.qq.com/

6、最后回到微信公众平台,找到服务器域名,在requests合法域名中填写https://apis.map.qq.com,这样在开发过程中就能调用接口而不被拦截了。

三、下载腾讯位置SDK

当完成上述步骤后,最后把腾讯位置服务提供JavaScript版本的SDK包放入小程序项目的lib目录中,如果没用lib目录就新创建一个,那么就大功告成了!
SDK包下载地址:https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.2.zip

本次分享就到此为止了,有问题欢迎评论区留言,谢谢大家!

以上是关于微信小程序开发过程中获取位置信息的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序开发学习--获取用户信息

微信小程序开发图片上传+服务端接收

微信小程序开发获取手机连接的wifi信息

微信小程序开发教程集合

微信小程序开发 微信小程序授权获取用户信息openid

微信小程序开发 微信小程序授权获取用户信息openid