vue引入原生高德地图

由于工作上的需要,今天捣鼓了半天高德地图。

如果定制化开发需求不太高的话,可以用vue-amap,这个我就不多说了,详细就看官网 https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install

然而我们公司需要英文版的高德,我看vue-amap中好像没有这方面的配置,而且还有一些其他的定制化开发需求,然后就只用原生的高德。

其实原生的引入也不复杂,但是有几个坑要填一下。

1. index.html

注意,引入的高德js一定要放在头部而不是尾部,否则就会报 “AMap is not defined”。这个坑我踩了好久!网上找了其他文章也都都没有提到这一点。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>demo</title>
    <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=YOURKEY"></script>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

2. webpack.base.conf.js

在module.exports = {}里加入

externals: {
  'AMap': 'AMap'
},

3. 引用高德的那个页面

<template>
  <div class="hello">
    <div style="height:500px" id="container" tabindex="0"></div>
  </div>
</template>

<script>
import AMap from 'AMap'
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'hello'
    }
  },
  mounted () {
    this.init()
  },
  methods: {
    init: function () {
      let map = new AMap.Map('container', {
        center: [116.397428, 39.90923],
        resizeEnable: true,
        zoom: 10,
        lang: 'en'
      })
      AMap.plugin(['AMap.ToolBar', 'AMap.Scale'], function () {
        map.addControl(new AMap.ToolBar())
        map.addControl(new AMap.Scale())
      })
    }
  }
}
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一次遇到地图的项目,作为一个地图小白,首先不知道用什么地图,就百度了一下vue能使用的地图,就找到了vue-am...
    A佳_848b阅读 15,399评论 1 0
  • 今天是端午节,早晨睁开眼睛看了下手表~7点了,掏出手机,看到写作群的美女小西发的4点钟就起床上山的图片,花和树叶迎...
    我是仙儿阅读 1,950评论 1 0
  • 中指上残留淡淡的戒指印,算了吧! 谢谢你,这一段时间是我近五年来最开心的日子。...
    子山上人阅读 2,732评论 0 0
  • 肖文姬阅读 3,025评论 0 0
  • 这周我的生活、学习节奏照常。 我会带着妹妹一起跳绳了,和妹妹一起看书,一起做羊毛画: 这周的作业完成情况: 还在公...
    Moonlightboy阅读 1,690评论 1 2