前端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限制输入实现代码
Dec 04 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
js键盘事件的keyCode
Jul 29 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
bootstrap模态框消失问题的解决方法
Dec 02 Javascript
js鼠标跟随运动效果
Mar 11 Javascript
12个非常有用的JavaScript技巧
May 17 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
JavaScript实现新年倒计时效果
Nov 17 Javascript
vue使用map代替Aarry数组循环遍历的方法
Apr 30 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中常用的魔术方法
2017/04/28 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
javascript查询字符串参数的方法
2015/01/28 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
vue-router传参用法详解
2019/01/19 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python实现彩色图转换成灰度图
2019/01/15 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
Python PyQt5整理介绍
2020/04/01 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
.net面试题
2015/12/22 面试题
培训班主持词
2014/03/28 职场文书
新郎新娘答谢词
2015/01/04 职场文书
大学生英文求职信范文
2015/03/19 职场文书
2015年科普工作总结
2015/07/23 职场文书
小学大队委竞选口号
2015/12/25 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL