前端vue如何使用高德地图


Posted in Javascript onNovember 05, 2020

首先,注册Key

 1、注册开发者账号,成为高德开放平台开发者

    2、登陆之后,在进入「应用管理」 页面「创建新应用」

 3、为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」

然后,书写代码

   在vuecli  public文件夹中的index.html添加导入 JS API 的入口脚本标签

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="./iconLink.png" rel="external nofollow" >
  <title>高德地图</title>
  <!-- 建议将导入的script写在body前面,以便提前加载 -->
  <script type="text/javascript" src="http://webapi.amap.com/maps?v=2.0&key=d6c35bb2619f107f86ccda4b378415f6&plugin=AMap.MouseTool"></script> <!-- 只是我的key,可以暂时用为测试(不定什么时候失效) -->

 <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> <!-- 高德官方文档的ui库 --> </head> <body> <div id="app"></div> </body>
</html>

在vue.config.js中修改配置

module.exports = {
  publicPath: "./",
  configureWebpack: {
    externals: {
      AMap: 'window.AMap',
      AMapUI: 'window.AMapUI' // 高德地图配置
    },
  }
};

接下来,正式书写vue组件

废话不多说,直接上代码

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

<script lang="ts">
import { Vue, Component, Prop, Watch } from 'vue-property-decorator';
@Component({
})
export default class page extends Vue { // 使用 import AMap from 'amap'; 会有编辑器报错Cannot find module 'amap'; 所以变通换一种写法
  protected AMap: any = (window as any).AMap;
  protected AMapUI: any = (window as any).AMapUI;

 // 如果写在created会报错 "Error: Map container div not exist"
  mounted() {
      let map = new this.AMap.Map('container', {
        center: [121.227577, 31.101471], // 中心点坐标
        resizeEnable: true, // 是否监控地图容器尺寸变化
        zoom: 10, // 初始化地图层级,可以理解为缩放比例
        showMarker: true, // 定位成功后在定位到的位置显示点标记,默认:true
      });

      //加载SimpleInfoWindow,loadUI的路径参数为模块名中 'ui/' 之后的部分
      this.AMapUI.loadUI(['overlay/SimpleInfoWindow'], (SimpleInfoWindow: any) => {
        let marker = new this.AMap.Marker({
          map: map,
          zIndex: 9999999,
          position: map.getCenter(),
        });

        let infoWindow = new SimpleInfoWindow({
          infoTitle: '<strong>这里是标题</strong>',
          infoBody: '<p>这里是内容。</p>',
          offset: new this.AMap.Pixel(0, -31), // 文本定位偏移
        });
        //显示在map上
        function openInfoWin() {
          infoWindow.open(map, marker.getPosition());
        }
        marker.on('click', () => {
          openInfoWin(); // 点击标记时显示文本
        });
        openInfoWin();
      });
  }
}
</script>

<style scoped lang="scss"></style>

页面效果如下

前端vue如何使用高德地图

以上就是前端vue如何使用高德地图的详细内容,更多关于vue 高德地图的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
使用JS 清空File控件的路径值
Jul 08 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
js实现3D图片环展示效果
Mar 09 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 #Javascript
vue 全局封装loading加载教程(全局监听)
Nov 05 #Javascript
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 #Javascript
Array.filter中如何正确使用Async
Nov 04 #Javascript
JavaScript setTimeout()基本用法有哪些
Nov 04 #Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 #Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 #Javascript
You might like
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python dumps和loads区别详解
2020/02/04 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
Python的信号库Blinker用法详解
2020/12/31 Python
如何写出高性能的JSP和Servlet
2013/01/22 面试题
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
人力资源经理自我评价
2014/01/04 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
党员作风建设整改方案
2014/10/27 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
Golang二维数组的使用方式
2021/05/28 Golang