uniapp App端高德地图选址

首先,uni.chooseLocation,这是个什么玩意,不是原生的方法,原生地图覆盖了这个地图,正式打包之后也不能用,于是乎,我想到了webview嵌入h5

因为高德地图和腾讯地图引入iframe打包后不能获取具体位置,设置backurl参数(腾讯地图)也不太好用,打包之后返回不了,但是重点来了,聪明的我发现他们都有一个共同特点,都可以指定附近位置选择,腾讯的是coord参数,高德的是center,我的思路既然不能精确定位,那就先提前获取位置,然后把经纬度传到iframe的src里,这样就弥补了这个缺点,废话不多说上干货。。。

h5目录

uniapp App端高德地图选址_第1张图片
image

页面A是要获取位置的页面,然后我们就在这个页面先获取经纬度,然后传到h5页面

uniapp App端高德地图选址_第2张图片
image

A页面data

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页面)来了,



    
        
        

        
        
        
        
        选取位置
        
    
    

        
        
        

    

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();
            });

        },

over!over!over!
你觉得有用就点个赞再走吧!!!

你可能感兴趣的:(uniapp App端高德地图选址)