前端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 版本]
Mar 20 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
Apr 12 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
Javascript防止图片拉伸的自适应处理方法
Dec 26 Javascript
vue实现密码显示隐藏切换功能
Feb 23 Javascript
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
解决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
JSON 学习之完全手册 图文
2007/05/29 Javascript
JavaScript URL参数读取改进版
2009/01/16 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
Django基础知识与基本应用入门教程
2018/07/20 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python3下载抖音视频的完整代码
2019/06/05 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
python实现坦克大战
2020/04/24 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
金融专业个人求职信范文
2013/11/28 职场文书
青年文明号事迹材料
2014/01/18 职场文书
小学数学课后反思
2014/04/23 职场文书
安全生产大检查方案
2014/05/07 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang