Vue-Cli 3.0 中配置高德地圖的兩種方式

這篇文章主要介紹了Vue-Cli 3.0 中配置高德地圖的兩種方式,非常不錯,具有一定的參考借鑑價值,需要的朋友可以參考下

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

一、vue-amap 組件

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

開始的時候是打算用這個組件做地圖功能的,但是嘗試之後存在些問題,所以就放棄了,可能是我的使用方式不對。我所遇到的問題:

1. 安裝之後使用,始終提示跨域問題。

2. 頁面刷新之後地圖出不來,第一次進入頁面時沒問題。因爲這兩個問題所以放棄了這個組件的使用。我想可能是我哪個地方代碼有問題。

二、直接引用高德地圖 SDK

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

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

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

2. 在 vue.config.js 文件中配置 externals

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

注: vue.config.js 文件要自己創建,vue-cli 3.0 不會自動生成此文件。 此外,修改 vue.config.js 不會觸發熱加載,也就是修改之後你需要重新 run 一下你的項目,它才能生效。

 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. 效果圖

總結

以上所述是小編給大家介紹的Vue-Cli 3.0 中配置高德地圖的兩種方式,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章