• uniapp|微信小程序获取当前城市名称--逆地址解析


    六年代码两茫茫,不思量,自难忘
    6年资深前端主管一枚,只分享技术干货,项目实战经验
    关注博主不迷路~


    问题

    uniapp开发的小程序需要获取当前城市名称

    解决步骤

    看文档

    当然是看uniapp文档,我们查到有提供相关的API,即uni.getLocation(OBJECT),获取当前的地理位置、速度。
    在这里插入图片描述
    我们试试吧

    uni.getLocation({
    	type: 'wgs84',
    	geocode:true,
    	success: function (res) {
    		console.log('当前位置的经度:' + res.longitude);
    		console.log('当前位置的纬度:' + res.latitude);
    	}
    });
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    我们发现只能返回经纬度信息,并不会返回城市信息。
    在这里插入图片描述
    原来是只有app才支持geocode
    哈哈事情没有想象中那么简单~
    在这里插入图片描述
    思考ing…

    查阅了相关资料,原来是位置详细信息的一些保密协议,并不能直接获取到。那么我们就需要通过经纬度,利用腾讯地图JavaScript SDK逆地址解析,即输入坐标返回地理位置信息。


    有方法了,开整

    逆地址解析

    1. 创建应用

    打开腾讯地图开放平台,创建应用
    在这里插入图片描述
    然后
    控制台 ->应用管理 -> 我的应用 ->添加key-> 勾选
    在这里插入图片描述
    小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需要具备相应的权限
    授权ip即当前连接服务的IP地址(注意:上线后这个一定要换成上线IP地址哦)
    填入微信小程序appid
    在这里插入图片描述
    现在有了地图秘钥key

    2. uniapp配置

    1. pages.json配置
      加入以下配置项,用于申请获得位置权限
    "permission": {
    	"scope.userLocation": {
    		"desc": "你的位置信息将用于小程序位置接口的效果展示" 
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. uniapp配置
      在这里插入图片描述
      这里填写的描述信息就是微信弹起信息微信授权弹框的描述信息
      在这里插入图片描述

    3. 代码部分

    下载微信小程序JavaScriptSDK

    var QQMapWX = require('@/utils/qqmap-wx-jssdk.min.js');
    // 实例化API核心类
    var qqmapsdk = new QQMapWX({
        key: '' // 必填
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5

    key即申请的腾讯地图秘钥key

    uni.getLocation({
    			type: 'gcj02',
    			geocode: true,
    			success: function (res) {
    				//逆地址解析  坐标转地址信息
    				qqmapsdk.reverseGeocoder({
    				  //Object格式
    				       location: {
    				         latitude: res.latitude,
    				         longitude: res.longitude
    				       }, 
    				    success: function(res) {//成功后的回调
    					   const mapdata=res.result.ad_info;
    					   that.city = mapdata.city;
    				   },fail: function(error) {
    				       console.error(error);
    				     },
    				     complete: function(res) {
    				       //console.log(res);
    				     }
    				});
    				
    			}
    		});
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    编译
    在这里插入图片描述

    我们看返回信息
    在这里插入图片描述
    现在是有返回当前位置详细信息了,当前也包括城市名称。

    问题解决!


    总结

    遇到问题并不可怕,可怕的是停滞不前,知难而退。只有发现问题才能解决问题,才会得到成长和锻炼。人生的路总是一波三折,代码也是,风雨之后总会见到彩虹的,加油!

    ✨原 创 不 易 , 还 希 望 各 位 支 持
    👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 !
    ⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 !
    ✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 !

    🌈文末福利:搜索公众号【前端二次元】回复关键字「前端资料」,领取前端系统课程,涵盖前端所有内容

  • 相关阅读:
    SpringBoot测试实践
    蓝牙音视频远程控制协议(AVRCP)介绍
    SpringBoot集成Mybatis-Plus
    【Android 屏幕适配】屏幕适配通用解决方案 ⑦ ( PercentRelativeLayout 百分比布局方案 | 该布局已废弃本方案仅做参考 )
    认识ICMP协议 —— ping命令的作用过程
    【linux】安装openjdk8
    解决主机连接Linux虚拟机应用时,外部连接不通的问题
    vue antv g6 编辑器
    电子学会C++编程等级考试2023年05月(一级)真题解析
    目标检测论文解读复现之四:改进YOLOv5算法在停车场火灾检测中的应用
  • 原文地址:https://blog.csdn.net/qq_37215621/article/details/126736239