前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序获取当前城市名称--逆地址解析

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

作者头像
江拥羡橙
修改2023-06-09 11:35:55
2.1K0
修改2023-06-09 11:35:55
举报
文章被收录于专栏:前端二次元前端二次元

问题

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

解决步骤

看文档

当然是看uniapp文档,我们查到有提供相关的API,即uni.getLocation(OBJECT),获取当前的地理位置、速度。

我们试试吧

代码语言:javascript
复制
uni.getLocation({
    type: 'wgs84',
    geocode:true,
    success: function (res) {
        console.log('当前位置的经度:' + res.longitude);
        console.log('当前位置的纬度:' + res.latitude);
    }
});

我们发现只能返回经纬度信息,并不会返回城市信息。

原来是只有app才支持geocode 哈哈事情没有想象中那么简单~

思考ing...

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


有方法了,开整

逆地址解析

1. 创建应用

打开腾讯地图开放平台,创建应用

然后 控制台 ->应用管理 -> 我的应用 ->添加key-> 勾选

小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需要具备相应的权限

授权ip即当前连接服务的IP地址(注意:上线后这个一定要换成上线IP地址哦) 填入微信小程序appid

现在有了地图秘钥key

2. uniapp配置

pages.json配置 加入以下配置项,用于申请获得位置权限

代码语言:javascript
复制
"permission": {
    "scope.userLocation": {
        "desc": "你的位置信息将用于小程序位置接口的效果展示" 
    }
}

uniapp配置

这里填写的描述信息就是微信弹起信息微信授权弹框的描述信息

3. 代码部分

下载微信小程序JavaScriptSDK

https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.2.zip

代码语言:javascript
复制
var QQMapWX = require('@/utils/qqmap-wx-jssdk.min.js');
// 实例化API核心类
var qqmapsdk = new QQMapWX({
    key: '' // 必填
});

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

代码语言:javascript
复制
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);
                     }
                });

            }
        });

编译

我们看返回信息

现在是有返回当前位置详细信息了,当前也包括城市名称。

问题解决!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ELSE前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决步骤
    • 看文档
      • 逆地址解析
        • 1. 创建应用
        • 2. uniapp配置
        • 3. 代码部分
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档