uniapp H5 getLocation获取当前城市位置

今天用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版权协议,转载请附上原文出处链接和本声明。