Vue-Cli 3.0 中配置高德地圖

 vue 中使用高德地圖有兩種方式javascript

 

1、vue-amap 組件html

官網: https://elemefe.github.io/vue-amap/#/vue

開始的時候是打算用這個組件作地圖功能的,可是嘗試以後存在些問題,因此就放棄了,多是個人使用方式不對。我所遇到的問題: 1. 安裝以後使用,始終提示跨域問題。 2. 頁面刷新以後地圖出不來,第一次進入頁面時沒問題。由於這兩個問題因此放棄了這個組件的使用。我想多是我哪一個地方代碼有問題。java

 

2、直接引用高德地圖 SDKgit

由於第一種方式嘗試失敗了,因此我選擇了直接引用SDK的方式。使用這種方式沒有出現方式一中存在的問題。直接引用SDK的方式步驟:github

1. 在 public 文件夾下的 index.html 中加入 web

<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=你申請的key"></script>

 

2. 在 vue.config.js 文件中配置 externalsvue-cli

module.exports = { devServer: { port: 57103 // 端口號配置 }, configureWebpack: { externals: { 'AMap': 'AMap' // 高德地圖配置 } } }

注: vue.config.js 文件要本身建立,vue-cli 3.0 不會自動生成此文件。 此外,修改 vue.config.js 不會觸發熱加載,也就是修改以後你須要從新 run 一下你的項目,它才能生效。api

 

3. 實際使用跨域

<template>
  <div class="box">
    <div id="container" style="width:500px; height:300px"></div>
  </div>
</template>

<script> import AMap from 'AMap' // 引入高德地圖 export default { mounted () { this.init() }, methods: { init () { let map = new AMap.Map('container', { center: [116.397428, 39.90923], resizeEnable: true, zoom: 10 }) } } } </script>

注:init() 方法請在 mounted 生命週期中調用,由於若是在 created 階段調用,會找不到 html 元素 div#container

 

4. 效果圖

相關文章
相關標籤/搜索