前端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 相关文章推荐
自用js开发框架小成 学习js的朋友可以看看
Nov 16 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
Aug 04 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
Apr 13 Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
JS实现数组去重的11种方法总结
Apr 04 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
python正则表达式re模块详解
2014/06/25 Python
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
利用python画一颗心的方法示例
2017/01/31 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
python中比较两个列表的实例方法
2019/07/04 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
工厂实习感言
2014/01/14 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
学校文明单位申报材料
2014/05/06 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
2014年财政局工作总结
2014/12/09 职场文书