前端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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
js CSS操作方法集合
Oct 31 Javascript
jquery的Theme和Theme Switcher使用小结
Sep 08 Javascript
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
TextArea设置MaxLength属性最大输入值的js代码
Dec 21 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
JavaScript实现小球沿正弦曲线运动
Sep 07 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 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
一个程序下载的管理程序(四)
2006/10/09 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
Python数据结构之Array用法实例
2014/10/09 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
研究生考核个人自我鉴定
2014/03/27 职场文书
妇女干部培训方案
2014/05/12 职场文书
企业安全生产承诺书
2014/05/22 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
个人汇报材料范文
2014/12/30 职场文书
教学质量月活动总结
2015/05/11 职场文书
企业文化学习心得体会
2016/01/21 职场文书
演讲稿之开卷有益
2019/08/07 职场文书