前端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实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
May 09 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
JavaScript中的E-mail 地址格式验证
Mar 28 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
微信小程序 select 下拉框组件功能
Sep 09 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
js正则匹配多个全部数据问题
Dec 20 Javascript
vue实现匀速轮播效果
Jun 29 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
收音机的保养
2021/03/01 无线电
php 代码优化的42条建议 推荐
2009/09/25 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
详解a++和++a的区别
2017/08/30 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
一年级家长会邀请函
2014/01/25 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
法制教育观后感
2015/06/17 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
吃通javascript正则表达式
2021/04/21 Javascript