uniapp|uniapp App端高德地图选址

首先,uni.chooseLocation,这是个什么玩意,不是原生的方法,原生地图覆盖了这个地图,正式打包之后也不能用,于是乎,我想到了webview嵌入h5
因为高德地图和腾讯地图引入iframe打包后不能获取具体位置,设置backurl参数(腾讯地图)也不太好用,打包之后返回不了,但是重点来了,聪明的我发现他们都有一个共同特点,都可以指定附近位置选择,腾讯的是coord参数,高德的是center,我的思路既然不能精确定位,那就先提前获取位置,然后把经纬度传到iframe的src里,这样就弥补了这个缺点,废话不多说上干货。。。
h5目录
uniapp|uniapp App端高德地图选址
文章图片
image 页面A是要获取位置的页面,然后我们就在这个页面先获取经纬度,然后传到h5页面
uniapp|uniapp App端高德地图选址
文章图片
image A页面data
uniapp|uniapp App端高德地图选址
文章图片
image methods里先获取经纬度然后在onLoad执行下,然后把获取的经纬度传到B页面(注意:高德地图获取经纬度首先要在去高德地图申请安卓的appkey,然后在mainfest.json勾选相应配置,具体这里不多说了)

//高德地图获取经纬度 getLocation() { let _this = this; uni.getLocation({ type: 'gcj02', geocode: true, success: function(res) { console.log('当前位置的经度:' + res.longitude); console.log('当前位置的纬度:' + res.latitude); let aa = res.longitude + "," + res.latitude; _this.url += encodeURIComponent(aa) }, fail: function(res) { uni.showToast({ title: '获取地址失败,请检查设备是否允许定位 ', icon: 'none' }); _this.loadModal = false; },}); },

B页面来了,

C页面(h5页面)来了,
选取位置 - 锐客网body{ position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: 0; } iframe{ width: 100%; height: 100%; }

A页面接收B页面返回的经纬度城市信息,
onLoad(options) { // 进入A页面主动获取经纬度,然后传到h5 ifrem里 this.getLocation(); // 页面通讯 let _this = this; uni.$on("onAddressChange", function(info) { console.log("购物车 <- 收到:", info) // alert("购物车 <- 收到" + info) _this.selectArea = info.name; _this.longitude = info.location.substring(0, 10); _this.latitude = info.location.substring(11, 20); console.log("_this.longitude:", info.longitude) console.log("_this.latitude:", _this.latitude) _this.getAreaInfo(); }); },

【uniapp|uniapp App端高德地图选址】over!over!over!
你觉得有用就点个赞再走吧!!!

    推荐阅读