文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【小程序】微信小程序获取用户位置,经纬度及逆地址解析

2023-09-15 13:46

关注

文章目录


前言

在针对小程序埋点时,需要获取到用户的位置,uniapp有自带获取位置的方法uni.getLocation其中可以获取到经纬度,以及中文地址address,但是中文地址仅APP端支持,小程序是用不了的。现在只能拿到经纬度,再通过经纬度逆地址解析,得到中文地址。


提示:以下是本篇文章正文内容,下面案例可供参考

一、获取经纬度

获取经纬度的方法有很多:

  1. uniapp可以通过uni.getLocation获取
  2. wx.getLocation获取
  3. 三方api/sdk获取

1,需要在app.json里面声明你所需要用的接口

在uniapp的manifest.json源码视图里面进行声明

如果不声明是无法正常使用接口的,更多接口声明可以查看微信官方规则

"requiredPrivateInfos": [    "getLocation"  ],

注意:如果小程序上线,需要提前申请开通使用接口的权限且只针对部分主体提供使用权限,否则审核不会通过 微信官方申请

2,注意保护用户的隐私,需要经过用户授权之后才可以获取用户位置,如果用户拒绝了也是无法获取到的。
在app.json里面配置获取用户定位权限的提示:

"permission": {    "scope.userLocation": {      "desc": "你的位置信息将用于小程序位置接口的效果展示" // 定位    }  },

3,判断用户是否已经授权定位,如果没有授权则弹出获取定位权限的提示,可通过wx.getSetting拿到用户的授权信息,没有授权弹出授权请求,用户可拒绝,若之前用户已经授权则不会弹出请求,直接返回success

wx.getSetting({success(res) {if (!res.authSetting['scope.userLocation']) {wx.authorize({scope: 'scope.userLocation',success() {// 用户已授权位置权限// 可以继续访问位置信息},fail() {// 用户拒绝了位置权限// 可以相应地处理拒绝情况console.log("用户拒绝了位置权限")},});} else {// 用户已经授权了位置权限// 可以继续访问位置信息console.log("用户已经授权了位置权限")}},});}

4,获取经纬度
通过wx.getLocation拿到用户的经纬度

wx.getLocation({type: 'wgs84',success: function(res) {console.log('用户已授权位置权限,经纬度:' + res.longitude, res.latitude);},fail: function() {console.log("获取地理位置失败")}})

二、逆地址解析

小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方API(逆地址解析) 我这边第三方以腾讯位置服务举例

1.申请API Key

现在先注册腾讯地图,获取key
https://lbs.qq.com/dev/console/key/manage
在这里插入图片描述

2.使用WebService API

获取到api密钥之后就可以使用API了

wx.request({url: 'https://apis.map.qq.com/ws/geocoder/v1/',data: {location: `${latitude},${longitude}`,key: 'API_KEY',get_poi: 0,output: 'json'},success(res) {var address = res.data.result.address;},fail(error) {console.error('逆地理编码失败:', error);}});

该处使用的url网络请求的数据。接收参数经纬度
返回的res.data.result.address中就有解析出来的中文地址


来源地址:https://blog.csdn.net/m0_71621983/article/details/132210196

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯