用script的方式异步引入高德地图

    技术2023-07-01  74

    <template> <div :id="id" :style="{width:'0px',height:'0px'}" class="m-map"/> </template> <script> mounted(){ // 这里onmaploaded,异步加载高德地图的回调会去执行这个方法 window.onmaploaded = () =>{ let map = new AMap.Map('all-map', { center: [116.46,39.92] }) self.map = map window.AMap.plugin('AMap.Geolocation', function () { var geolocation = new AMap.Geolocation({ enableHighAccuracy: true, //是否使用高精度定位,默认:true timeout: 10000, //超过10秒后停止定位,默认:5s buttonPosition: 'RB', //定位按钮的停靠位置 buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) zoomToAccuracy: true, //定位成功后是否自动调整地图视野到定位点 }); geolocation.getCurrentPosition(function (status, result) { console.log(status) if (status == 'complete') { console.log('高德: ', `${result.position.lat},${result.position.lng}`) self.lng = result.position.lng; self.lat = result.position.lat; sessionStorage.setItem('latitude',result.position.lat) sessionStorage.setItem('longitude',result.position.lng) // 获取经纬度后,重新请求一次数据,得到距离该店xxx米的数据 self.getData() self.$nextTick() } else { console.error('高德失败') console.log(result) // saveLocation(0, 0) } }); self.geolocation = geolocation }); self.map = map } const url = `https://webapi.amap.com/maps?v=1.4.15&key=3eb1143818def654f7e083fffe9961de&callback=onmaploaded` let jsapi = document.createElement('script') jsapi.charset = 'utf-8' jsapi.src = url document.head.appendChild(jsapi) } </script>
    Processed: 0.011, SQL: 9