vue-cli3引入高德地圖

vue.config.js

module.exports = {
  configureWebpack: {
    externals: {
      'AMap': 'AMap' // 高德地圖配置
    }
  } 
}

loadMap.js

export default function loadMap (key, plugins, v = 'version') {
  return new Promise(function (resolve, reject) {
    if (typeof AMap !== 'undefined') {
      // eslint-disable-next-line no-undef
      resolve(AMap)
      return true
    }
    window.onCallback = function () {
      // eslint-disable-next-line no-undef
      resolve(AMap)
    }
    let script = document.createElement('script')
    script.type = 'text/javascript'
    script.src = `https://webapi.amap.com/maps?v=${v}&key=${key}&plugin=${plugins}&callback=onCallback`
    script.onerror = reject
    document.head.appendChild(script)
  })
}

amap.vue

mounted () {
    loadMap(this.key, this.plugins, this.v).then(AMap => {
       this.areaMap = new AMap.Map('main', {
        center: [121.605575, 31.179352],
        zoom: 17,
        zooms: [3, 20]
      })
      this.areaMap.on('complete', () => {
        alert('地圖加載成功')
      })
    }).catch(() => {
      alert('地圖加載失??!')
    })
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容