前端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 相关文章推荐
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 Javascript
JavaScript中eval()函数用法详解
Dec 14 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
js 闭包深入理解与实例分析
Mar 19 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下MYSQL limit的优化
2008/01/10 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
分家协议书
2014/04/21 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
费城故事观后感
2015/06/10 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python