前端vue引入高德地图入门教程

这篇具有很好参考价值的文章主要介绍了前端vue引入高德地图入门教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

距离上一篇关于前端项目中使用高德地图的文章已经将近5年之久,
这是我的第一篇关于高德地图的文章
这期间前端技术日新月异,5年前JQuery还如日中天,如今已经销声匿迹,很少有公司招聘还在要求JQuery,更多的是Vue、React。
如今更多采用模块化开发,结合webpack、vite,我们可以按照业务功能拆分模块。
我们可以把高德地图相关功能封装成功能模块,在使用时按需引入即可。

本教程使用ESM开发,如果还不熟悉该语法,请尽快学习。

前期准备工作

  1. 首先成为开发者
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
  2. 注册完登录 创建新应用
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
  3. 创建key
    填入相关信息
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
  4. 生成key和安全秘钥
    key安全秘钥,在地图模块初始化时需要用到
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
    至此,前期准备工作已经完成。

模块化引入

安装高德地图包
npm i @amap/amap-jsapi-loader
步骤

  1. 提供一个地图挂载点,并设置宽高
  2. 引入地图加载方法,执行load方法,返回AMap构造函数
  3. 实例化构造函数,生成地图实例

模块加载

本地新建js文件,后续页面内使用地图功能,可以导入该模块
前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript

// gmap.js
import AMapLoader from '@amap/amap-jsapi-loader'

结合安全秘钥使用

Nginx配置
前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript

// gmap.js
// 需要在地图初始化加载前,设置该项
window._AMapSecurityConfig = {
  // 需要服务器配置,代理高德地图相关地址,路径固定为 ‘ /_AMapService ’
  serviceHost:'http://xxxxxx/_AMapService',  
}

初始化配置

// gmap.js
const AMap = await AMapLoader.load({
  "key": "xxxxxxxxxxxx", // 申请好的Web端开发者Key,首次调用 load 时必填
  "version": "2.0",   // 指定要加载的 JS API 的版本,缺省时默认为 1.4.15
  "plugins": [],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
})

实例化

// 实例化该构造函数,在调用该方法时,传入参数
const map = new AMap.Map(domContainer = 'map', options = {});

可以自己进行模块封装

import AMapLoader from '@amap/amap-jsapi-loader'
window._AMapSecurityConfig = {
  serviceHost:'http://xxxxxx/_AMapService',  // 自己的服务器地址 结合安全密钥使用
}
AMapLoader.load({
  "key": "xxxxxxxxxx", // 申请好的Web端开发者Key,首次调用 load 时必填
  "version": "2.0",   // 指定要加载的 JS API 的版本,缺省时默认为 1.4.15
  "plugins": [],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
}).then(AMap => {
  const map = new AMap.Map('container', {
    viewMode: '3D',  // 默认使用 2D 模式
    zoom: 11,  //初始化地图层级
    center: [116.397428, 39.90923]  //初始化地图中心点
  });
})

页面中使用地图模块

在vue页面中使用该模块

  1. 首先在页面中添加元素作为挂载点
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
  2. 并设置宽高(必须)
    前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript

引入该模块,并初始化地图

<template>
  <div>
    <div id="map"></div>
  </div>
</template>
<script>
import AMapLoader from '@amap/amap-jsapi-loader'
window._AMapSecurityConfig = {
  serviceHost:'http://xxxxxx/_AMapService',  // 自己的服务器地址 结合安全密钥使用
}
export default {
  name: "",
  data(){
    return {
      map: null,
    }
  },
  mounted() {
    this.mapInit()
  },
  methods: {
    mapInit () {
      AMapLoader.load({
	   "key": "xxxxxxxxxx", // 申请好的Web端开发者Key,首次调用 load 时必填
	    "version": "2.0",   // 指定要加载的 JS API 的版本,缺省时默认为 1.4.15
	    "plugins": [],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
	  }).then(AMap => {
	    this.map = new AMap.Map('container', {
	      viewMode: '3D',  // 默认使用 2D 模式
	      zoom: 11,  //初始化地图层级
	      center: [116.397428, 39.90923]  //初始化地图中心点
	    });
        this.map.on('complete', () => {
      	  console.log('地图加载完毕')
        })
	  })
    }
  },
  beforeDestroy () {
    this.map.destroy()
  },
}
</script>
<style scoped>
  #map {
    width: 200px;
    height: 200px;
  }
</style>

前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript
前端vue引入高德地图入门教程,web前端,前端,vue.js,javascript

至此,页面上已经成功显示地图

地图加载完成事件

this.map.on('complete', ()=> {
	// 地图图块加载完成后,触发该回调
})

页面销毁,需要销毁地图

提升性能,释放内存占用,当前地图容器被清空。
在页面卸载生命周期中,执行地图销毁事件

beforeDestroy () {
	this.map.destroy();
}

未完待续。。。

如果有什么业务上相关的问题,也可以留言。文章来源地址https://www.toymoban.com/news/detail-682114.html

到了这里,关于前端vue引入高德地图入门教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在vue中引入高德地图

    既然要用到高德地图首先要申请成为高德地图开发者,并申请使用高德地图的key 这两点在这篇文章就不过多赘述,有需要的小伙伴可以查查资料,或者去高德地图api官网都有很详细的介绍。高德地图官网 简单提一下申请秘钥流程(web端) 控制台–应用管理–我的应用 好啦!

    2024年02月04日
    浏览(73)
  • vue中引入并使用高德地图

    1.进入高德开放平台 2.点击: 开发支持---------地图JS AP---------JSAPI的加载 3.选择 按NPM方式使用loader 4.定义一个有宽高的div,书写以下代码: 先放效果图,左下角是可供选择的鼠标样式 1.点击示例中心---------地图属性-------下划找到 设置鼠标样式 2.点进去后有示例代码 3.这是之前

    2024年02月03日
    浏览(41)
  • Vue项目中引入高德地图步骤详解

    高德地图API官网:高德开放平台 | 高德地图API。 目录 一、案例效果 二、开发准备 1. 注册高德开放平台账号 2. 创建应用添加 key 值 三、项目中使用地图组件 1. npm 获取高德地图 API 2.在项目中新建 MapContainer.vue 文件,用作地图组件。 3.在 MapContainer.vue 地图组件中创建 div 标签作

    2024年02月03日
    浏览(35)
  • Uniapp 中,能够同时兼容H5、web、app、微信小程序的引入高德地图的语法格式

    在 Uniapp 中,可以通过使用 uni-app 统一的 API 来同时兼容 H5、web、App 和微信小程序,而引入高德地图则有以下两种语法格式供选择: 使用 Vue.js 的语法格式: 使用原生 JavaScript 的语法格式: 需要注意的是,这两种语法格式都需要在页面组件的 JavaScript 文件中引入相应的 API 文

    2024年02月05日
    浏览(41)
  • vue 引入高德地图当前定位失败 Get ipLocation failed.Geolocation permission denied.

    getCurrentPosition 返回的 message 原因解析 : Get ipLocation failed : IP 精确定位失败,精确IP定位服务目前无法完全覆盖所有用户 IP ,失败率在5%左右。 sdk 定位失败:检查 sdk 的 key 是否设置好,以及 webview 的定位权限及应用和系统的定位权限是否开启。 浏览器定位失败,有多种情

    2024年02月04日
    浏览(51)
  • [前端系列第2弹]CSS入门教程:从零开始学习Web页面的样式和布局

    在这篇文章中,我将介绍CSS的基本概念、语法、选择器、属性和值,以及如何使用它们来定义Web页面的外观和布局。还将给一些简单而实用的例子,可以跟着我一步一步地编写自己的CSS样式表。 目录 一、什么是CSS 二、CSS的语法 三、CSS的选择器 四、CSS的属性和值 (一)颜色

    2024年02月13日
    浏览(34)
  • vue前端项目引用高德离线地图

    由于上一篇下载离线地图瓦片的工具有问题,需要更换工具重新下载离线瓦片,步骤如下: 1.1用MapDownloader,下载离线地图瓦片 工具提取码: mmdl 需要对工具作如下配置 : MapDownloader.exe.config 文件进行修改 保存之后运行 MapDownloader.exe文件 1.2 选择mysql数据库,然后选择要下载得地

    2024年02月08日
    浏览(44)
  • Vue+OpenLayers6从入门到实战进阶案例汇总目录,Vue+OpenLayers6地图整合教程,OpenLayers6中文文档,OpenLayers6中文手册

    本篇作为《Vue+OpenLayers6入门教程》和《Vue+OpenLayers6实战进阶案例》所有文章的二合一汇总目录,方便查找。 本专栏源码是由OpenLayers6.15.1版本结合Vue2框架编写,同时支持Vue3,零星几篇文章用到了Element-UI库。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程

    2024年04月23日
    浏览(63)
  • DHTMLX Gantt入门使用教程【引入】:如何开始使用 dhtmlxGantt

    DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术(PHP,ASP.NET,Java等)简单集成,满足多种定制开发需求

    2023年04月14日
    浏览(37)
  • 小程序引入高德/百度地图坐标系详解

    官网最近更新时间:最后更新时间: 2021年08月17日 高德官网之在原生小程序中使用的常见问题 链接 目前在小程序中使用 高德地图只支持以下功能 :地址描述、POI 和实时天气数据 小结:从高德api中获取数据然后更新到腾讯地图的map上 其实还是使用的腾讯地图 只不过数据的来

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包