当前位置: 首页 > Web前端 > JavaScript

uniapp|微信小程序获取当前城市名--反向地理编码

时间:2023-03-27 18:28:43 JavaScript

问题uniapp开发的小程序需要获取当前城市名。解决步骤是看文档,当然是看uniapp文档。我们发现有一个相关的API,就是uni。getLocation(OBJECT),获取当前位置和速度。试试吧uni.getLocation({type:'wgs84',geocode:true,success:function(res){console.log('当前位置的经度:'+res.longitude);console.log('The当前位置纬度:'+res.latitude);}});我们发现只能返回经纬度信息,不会返回城市信息。==原来只有app支持geocode==哈哈事情没有想象的那么简单~心想...查了下相关资料,原来是一些位置详情的保密协议,不可能直接获得。然后我们需要用到经纬度,使用腾讯地图JavaScriptSDK逆向地理编码,即输入坐标,返回地理位置信息。有办法,启动反向地址解析1.创建应用打开腾讯地图开放平台,创建应用然后控制台->应用管理->我的应用->添加key->勾选小程序SDK中需要的部分使用webserviceAPI服务,所以使用该功能的KEY需要有相应权限授权ip,即当前连接服务的IP地址(注意:上线后必须换成在线IP地址)。填写微信小程序appid现在有地图键key2.uniapp配置pages.json配置添加如下配置项申请位置权限"permission":{"scope.userLocation":{"desc":"Yourlocation信息将用于展示小程序定位界面的效果"}}uniapp配置这里填写的描述信息为微信弹窗信息和微信授权弹框的描述信息3.下载微信appletJavaScriptSDK代码部分。;//实例化API核心类varqqmapsdk=newQQMapWX({key:''//required});key为key申请的腾讯地图秘钥uni.getLocation({type:'gcj02',geocode:true,success:function(res){//反向地理编码坐标为地址信息qqmapsdk.reverseGeocoder({//对象格式location:{latitude:res.latitude,longitude:res.longitude},成功:function(res){//成功后回调constmapdata=res.result.ad_info;那.city=mapdata.city;},失败:函数(错误){console.error(错误);},完成:function(res){//console.log(res);}});}});编译看看返回的信息现在返回的是当前所在位置的详细信息,包括城市名。问题已经解决了!小结遇到问题并不可怕,可怕的是知难而退。只有发现问题,才能解决问题,才能得到成长和锻炼。人生的道路总是一波三折,代码也是如此。风雨过后总会有彩虹,加油!