在微信小程序中获取用户位置的详细过程
作者:张浔 发布时间:2024-04-29 13:43:02
前言
最近在学习微信小程序,在学习的过程中,有很多好玩的 API,经常点外卖的同学可能在小程序中遇到过,比如:某团、某了么都是有显示当前用户位置信息的,那么今天给大家介绍如何获取当前用户位置信息,听上去很不错,其实实践起来也不是很难。
wx.getLocation
首先,我们需要来认识一下 wx.getLocation
这个 API 方法,我们先看看 微信官方文档 中是怎么说的
看我划红线的地方就可以了,文档中明确的表示这个 API 方法就是用来获取当前的地理位置,那么如何使用呢,往下翻,看看官网中的示例代码。
看完示例代码,对于 wx.getLocation
中的 type 和 success 不理解,这俩是干啥的???,继续看文档,文档中写的很详细
通过以上信息,得出
type:默认值为 wgs84,返回 GPS 坐标
success:当调用成功时,会有一个回调函数,那么回调函数返回的参数就可以做一些东西了
我们先在微信小程序中成功调用一下这个 wx.getLocation
API 方法,再继续往下进行。
代码
将方法调用在组件生命周期中,让组件一开始就直接调用,因为 type 默认值为 wgs84
,所以写不写都可以(我懒,就不写了)
created() {
// 获取当前的地理位置
wx.getLocation({
success(res) {
console.log(res)
}
})
}
看下控制台输出结果
发现输出结果中的内容和上图中 success 回调函数的参数一一对应,我们只需要用到 latitude
和 longitude
纬度和经度这两个参数,那么怎么通过纬度和经度获取到具体的地理位置信息呢?
聪明的小伙伴百度一搜相关的工具就出来一大堆,工具很多,比如:经纬度/GPS坐标查询地图地址在线工具 ,但是我们是将来码界的一员啊,我们应该敲代码实现才对,况且,如果你写的项目上线之后,你还依赖在线工具去实现这个功能吗,太不现实了。
但是!我们可以借助大厂的技术服务😏,比如:腾讯位置服务 、百度地图开放平台 、高德开放平台
腾讯位置服务
我就给大家介绍如何使用腾讯的位置服务了啊,这些技术服务基本区别不大,也很容易上手。
首先,大家需要去 注册 一个号,绑定邮箱。
登录成功进去之后,按照下图进行操作
接着会弹出如下界面,进行填写即可
Key 名称很好理解吧,就是相当于咱们写代码中的属性名
描述就不过多介绍了,就相当于咱们写代码中的注释
启用产品为什么要选择
WebServiceAPI
呢?因为简单上手快,至于其他的,小伙伴们可以自己研究一下剩下的就不过多介绍了吧,字面意思👀
注意
这里添加的 key 不要向外透露!!!这是密钥,你进入家门的钥匙,不能随便给别人!
接着继续按下图操作
你会看到如下内容
选择 逆地址解析(坐标位置描述) 选项,右侧内容也明确的表示出此接口用来将经纬度转换能文字地址信息,具体如何使用,翻到最底部,看示例代码
你会看到人家请求时携带了三个参数, location
、get-poi
、key
,分别是什么意思呢?往上翻,继续阅读文档
location:将咱们用 wx.getLocation 获取到的经纬度坐标写在这里,格式为 latitude(纬度),longitude(经度),注意是用逗号分隔
get_poi:表示是否返回周边地点的信息,默认值为 0(不返回),根据需求修改就好了
key:就是咱们一开始添加的密钥
看到这里,我们可以动手实现了
代码
created() {
// 获取当前的经纬度坐标
wx.getLocation({
success(res) {
// 纬度
const latitude = res.latitude
// 经度
const longitude = res.longitude
// 请求腾讯地图逆地址解析接口
wx.request({
url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${latitude},${longitude}&key=写你自己添加的密钥`,
success(res) {
console.log(res)
}
})
}
})
}
响应结果
最终将地址渲染到页面即可
看到这里,恭喜你学会了,赶快动手实践一下吧
来源:https://blog.csdn.net/m0_58040147/article/details/125152280
猜你喜欢
- vim有各种强大的插件,这不仅归功于其提供的用来编写插件的脚本语言vimL,还得益于它良好的接口实现,从而支持python等语言编写插件。当
- 简介EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS 指定一个
- 本文实例讲述了scrapy自定义pipeline类实现将采集数据保存到mongodb的方法。分享给大家供大家参考。具体如下:# Standa
- Sample:http://www.happyshow.org/sample/20060613/nav/nav.html<!DOCTY
- 前言相信大家在最近的chatGPT的注册或者使用过程中都遇到了很多很多的报错,接下来的内容是关于chatGPT不管是注册还是使用过程中所有报
- 本文实例讲述了Javascript连接Access数据库的方法。分享给大家供大家参考。具体实现方法如下:var roc = roc || {
- 前言众所周知,jquery在我们日常开发中的使用频率非常高,与js相比,我们省去了冗长的获取元素的代码,不用考虑一些麻烦的兼容问题,更加方便
- 一.查询第二个字母是t或者a的雇员的全部信息 select * from employees where fi
- 我完成了更新我们在 Neutron的实时收入统计。在我花了一周的时间完成并且更新了我们的PHP脚本之后,我最终认决定开始使用Py
- 1.学习sql之前回忆一下,什么是变量?变量:能存储数据的值。变量是一块内存空间的表示。数组一连串空间变量是存储数据的容器(通俗讲)2.变量
- 每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。但是CSS还可以更好吗?开始用这5个Tips改进你的CSS吧!一、关于CSS
- min()方法返回它的参数最小值:最接近负无穷大的值。语法以下是min()方法的语法:min( x, y, z, .... )参
- 本文实例讲述了python通过smpt发送邮件的方法。分享给大家供大家参考。具体实现方法如下:import smtplib, socketf
- 可迭代(iterable)迭代(遍历)就是按照某种顺序逐个访问对象中的每一项。Python中有很多对象都是可以通过for语句来直接遍历的,例
- 本文为大家分享了网易2016研发工程师编程题,供大家参考,具体内容如下'''[编程题] 奖学金时间限制:1秒空间限制
- 工欲善其事必先利其器,PyCharm 是最popular的Python开发工具,它提供的功能非常强大,是构建大型项目的理想工具之一,如果能挖
- 如下所示:#!/usr/bin/env pythonimport osimport sysclass CConsole: M_MAP_COL
- 本文介绍了可以帮助简化 PHP 开发的10个项目,包括框架,类库,工具,代码。1.CakePHP Development Framework
- MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改 STORAGE_
- 注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns(一)行转列的方法先说说行转