今天用uniapp的uni.getLocation获取位置,但是获取的是当前的经纬度,而不是当前的城市,那怎么办?
在线问一下度娘,也绕路很多弯路,最后成功解决了这个问题。
第一步:安装vue-jsonp,它可以解决跨域问题,还可以将经纬度解析为城市
下面是安装命令
npm install –save vue-jsonp
然后在main.js引入这个
import {VueJsonp} from 'vue-jsonp';
Vue.use(VueJsonp);
引入之后在需要获取位置的页面写入如下代码
uni.getLocation({
type: 'wgs84',
success: function (res) {
that.longitude =res.longitude
that.latitude = res.latitude
},
fail() {
console.log("获取位置失败");
},
complete:()=> {
that.$jsonp("https://apis.map.qq.com/ws/geocoder/v1/", {
key: "3BSBZ-L7MLV-S2QPR-ULWG7-MKT3E-M5BDW",
callbackName: "getJsonData",
output: 'jsonp',
location: that.latitude+","+that.longitude
})
.then(json => {
// 请求成功的返回数据
console.log(json)
// console.log(json.result.ad_info.city);
})
.catch(err => {
// 请求失败的返回数据
console.log(err)
})
}
})
type默认值wgs84,这个不用管,key值是你的腾讯地图的Key,需要你自己去申请,callbackName这个默认,
不用管。location就是上一步uni.getLocation获取到的经纬度。
最后的在uniapp软件的manifest.json文件选择H5配置,选择定位与地图,勾选腾讯地图,粘贴你申请的key值。
到这里就结束了,就是这么简单。
版权声明:本文为weixin_44694389原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。