当前位置: 首页 > article >正文

Vue 3 中如何对接高德地图

1. 准备工作

1.1. 获取高德地图 API Key

首先,你需要在高德开放平台注册并获取一个 API Key。访问 高德开放平台 注册并申请。

1.2. 安装依赖

在 Vue 3 项目中使用高德地图,可以通过以下步骤安装依赖:

npm install @types/amap-js-api --save-dev

这是为了给高德地图 API 提供 TypeScript 的类型定义。

2. 创建 Vue 组件

2.1. 创建 Map.vue 组件

src/components 目录下创建 Map.vue 文件,这是我们将要实现地图功能的组件。

<template>
  <div id="mapContainer" style="width: 100%; height: 500px;"></div>
</template>

解释:

  • <template> 标签内定义了组件的 HTML 结构。

  • id="mapContainer" 是地图容器的 ID,地图将渲染到这个容器中。

  • style 属性用于设置地图容器的宽高。

2.2. 添加地图初始化脚本

Map.vue 文件中,添加 script 部分:

<script setup>
import { onMounted } from 'vue';

// 高德地图 API Key
const amapKey = '你的高德地图 API Key';

// 初始化地图
const initMap = () => {
  // 确保高德地图 API 已经加载
  const script = document.createElement('script');
  script.src = `https://webapi.amap.com/maps?v=1.4.15&key=${amapKey}`;
  script.async = true;
  script.onload = () => {
    // 高德地图 API 加载完成后的回调
    const map = new AMap.Map('mapContainer', {
      zoom: 10, // 设置地图的缩放级别
      center: [116.397428, 39.90923] // 设置地图的中心坐标
    });
  };
  document.head.appendChild(script);
};

// Vue 3 生命周期钩子,组件挂载后执行
onMounted(() => {
  initMap();
});
</script>

按照下面步骤获取高德地图的API key

解释:

  • import { onMounted } from 'vue'; 引入 Vue 3 的 onMounted 钩子,用于在组件挂载后执行代码。

  • const amapKey = '你的高德地图 API Key'; 替换为你在高德开放平台注册后获得的 API Key。

  • const script = document.createElement('script'); 创建一个新的 <script> 标签,用于引入高德地图的 API。

  • script.src 设置地图 API 的 URL,包括版本号和 API Key。

  • script.onload 指定 API 加载完成后的回调函数,用于初始化地图。

  • const map = new AMap.Map('mapContainer', {...}); 创建地图实例并配置中心点和缩放级别。

  • onMounted(() => { initMap(); }); 确保 initMap 在组件挂载后调用,初始化地图。

2.3. 样式设置

你可以在 Map.vue 文件内的 <style> 标签中添加地图样式,例如:

<style scoped>
#mapContainer {
  width: 100%;
  height: 500px;
}
</style>

3. 使用组件

src/App.vue 或其他需要使用地图的组件中,导入并使用 Map.vue 组件:

<template>
  <div id="app">
    <Map />
  </div>
</template>

<script setup>
import Map from './components/Map.vue';
</script>

解释:

  • import Map from './components/Map.vue'; 引入 Map.vue 组件。

  • <Map /> 使用 Map 组件并在页面上渲染地图。

4. 高级功能

高德地图提供了丰富的 API 和功能,例如标记、路线规划等。你可以在 initMap 函数中添加更多功能。

例如,添加一个标记:

const initMap = () => {
  // 确保高德地图 API 已经加载
  const script = document.createElement('script');
  script.src = `https://webapi.amap.com/maps?v=1.4.15&key=${amapKey}`;
  script.async = true;
  script.onload = () => {
    // 高德地图 API 加载完成后的回调
    const map = new AMap.Map('mapContainer', {
      zoom: 10,
      center: [116.397428, 39.90923]
    });

    // 添加标记
    new AMap.Marker({
      position: [116.397428, 39.90923],
      map: map
    });
  };
  document.head.appendChild(script);
};

解释:

  • new AMap.Marker({...}) 创建一个新的标记并将其添加到地图上。

总结

通过上述步骤,你可以在 Vue 3 项目中成功集成高德地图。你可以根据需求扩展地图功能,例如添加标记、绘制路径等。


http://www.kler.cn/a/288722.html

相关文章:

  • 【数据结构】交换排序——冒泡排序 和 快速排序
  • Appium配置2024.11.12
  • K8资源之endpoint资源EP资源
  • 利用滑动窗口解题
  • 在 Ubuntu 上安装 `.deb` 软件包有几种方法
  • 轻松上手:使用Docker部署Java服务
  • goreplay流量重放备忘
  • sqlite3的db.serialize方法:确保数据库操作串行化的利器
  • Autosar OS基础知识导图
  • 根据xml模板导出excel
  • Gitee镜像关联GitHub仓库
  • 【MySQL-24】万字全面解析<索引>——【介绍&语法&性能分析&使用规则】
  • 数据库:实验六存储过程
  • websocket:两台PC间数据传输
  • Leetcode 146. LRU 缓存(Medium)
  • 【知识库系列】MPR/多模态方向观察:图像视频与3D生成
  • 你的专利真的值钱吗?五重标准检验,让你的创新价值飙升
  • 深度学习:革新药物心脏毒性预测的新篇章
  • 局域网通信时,解决在一些设备上NsdManager发现服务失败的问题
  • 9_3_LineEdit
  • 抓取海外电商平台数据时,是否最好使用当地的IP?
  • 基础闯关4
  • 数学建模常用工具总结
  • 关于Linux(CentOS 7)中的用户sudo命令
  • 知识付费小程序搭建:开启知识变现新时代
  • 采用SIP封装的传感器系列:ARS19510LUBBTN、A19520LUBBTN、A1696PKHTN、A1694PKLN-RNZBE(资料)