Vue 3 中如何对接高德地图

news2024/11/13 9:29:17

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.coloradmin.cn/o/2099419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.注册中心的其他实现-Nacos

文章目录 1.Nacos简介2.Nacos的安装2.1Nacos Windows本地启动不成功&#xff1f;2.2Linux环境下载并启动 3. Nacos的使用4.Nacos的负载均衡5.Nacos 健康检查6.Nacos 环境隔离7.Nacos 配置中心7.1为什么需要配置中心7.2 Nacos配置中心使用7.3 Data id7.4Nacos 上Linux部署服务7.…

鹰眼应急实时三维重建装备,高质量交付中!

在《2024年地方应急管理科技信息化任务书》的指导和应急管理万亿国债支撑下&#xff0c;全国各地正积极推进应急管理现代化建设&#xff0c;全力提升“数据汇聚服务能力、监测预警能力、指挥调度能力、支撑保障能力”四项应急管理能力。 制定标准化流程规范&#xff0c;保障交…

计算机毕业设计选题推荐-茶园茶农文化交流平台-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

分组密码的模式AES-CBC模式流程解析附:应用代码实现

CBC模式&#xff1a;Cipher Block Chaining mode(密码分组链接模式) CBC模式的加解密 CBC模式中&#xff0c;首先将明文分组与前一个密文分组进行XOR运算&#xff0c;然后再进行加密。密文分组像链条一样相互连接在一起。 CBC模式的加密流程图 CBC模式的解密流程图 将一个分…

使用 `wget` 和 `curl` 命令行工具的全面指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

3.3 语法规则

&#x1f393; 微机原理考点专栏&#xff08;通篇免费&#xff09; 欢迎来到我的微机原理专栏&#xff01;我将帮助你在最短时间内掌握微机原理的核心内容&#xff0c;为你的考研或期末考试保驾护航。 为什么选择我的视频&#xff1f; 全程考点讲解&#xff1a;每一节视频都…

Oracle RAC关于多节点访问同一个数据的过程

一、说明 Oracle RAC 存在多个计算节点&#xff0c;但是使用的共享存储。那么多个节点共同访问同一个资源&#xff0c;怎么保证一致性。 白文的逻辑理解简述&#xff1a; 用户1访问rac1 &#xff0c;通过rac1获取AA数据块后&#xff0c;会加上latch锁。用户2通过rac2访问AA数据…

union不能被初始化由于有 non-trivial构造函数

背景 最近遇到一个问题&#xff0c;当定义一个union的时候&#xff0c;发现初始化失败&#xff0c;具体如下&#xff1a; class NonTrivial { public:NonTrivial(const std::string& s) : data(s) {std::cout << "NonTrivial constructed with " <<…

嵌入式OTG硬件电路分析

大家好,今天主要给大家分享一下,如何使用OTG硬件检测电路,和之前的接口有什么区别。 1. OTG接口与转换器 OTG是"On The Go"的英文缩写,字面上可以理解为“安上即可用”。USB传输是主从结构,一切USB传输都有Host发起。比如在开发板上可以插入U盘,这时开发板作为…

计算机毕业设计选题推荐-店铺租赁平台-商铺租赁系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【简历】25届武汉某二本JAVA简历:项目描述真是难为学生想这么偏

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份 25 届武汉某二本学校的JAVA简历。校招第一要点是上来必须先确定自己的求职层次&#xff0c;大中小厂要求不一样。二本同学主体…

Day 10-11:函数、函数传参

基本用法以及传参 基本用法 调用 1.无返回值函数调用 #include<stdio.h> #pragma warning(disable:4996); void my_helloworld() {printf("hello world!"); } int main() {my_helloworld();return 0; } //输出结果&#xff1a;hello world&#xff01;2.实际…

Leetcode每日刷题之438.找到字符串中所有字符异位词

1.题目解析 本题的题目要求是给定一个长字符串s与一个较短字符串p&#xff0c;判断s中是否有一段与p长度相同的字符串是由p打乱而得来&#xff0c;即为异位词&#xff0c;然后返回其开始位置下标&#xff0c;遍历s字符串中所有满足条件字符串的起始位置下标 2.算法原理 我们将p…

android AccessibilityService合法合规采集大众点评app商店商品详情(2024-09-02)

免责任声明: 任何可操作性的内容与本人无关,文章内容仅供参考学习&#xff0c;如有侵权损害贵公司利益&#xff0c;请联系作者&#xff0c;会立刻马上进行删除。 一、原理介绍 1、打开大众点评app商店 public void open_shop(Context context,String shop_id){String url"…

ARM基础知识---CPU---处理器

目录 一、ARM架构 1.1.RAM---随机存储器 1.2.ROM---只读存储器 1.3.flash---闪存存储器 1.4.时钟&#xff08;振晶&#xff09; 1.5.复位 二、CPU---ARM920T 2.1.R0~R12---通用寄存器 2.2.PC程序计数器 2.3.LR连接寄存器 2.4.SP栈指针寄存器 2.5.CPSR当前程序状态寄存…

【MySQL进阶】索引性能分析

1. 索引语法 创建索引&#xff1a; ​ 语法格式&#xff1a;create [unique|fulltext] index index_name on table_name(index_col_name...); 查看索引&#xff1a; ​ 语法格式&#xff1a;show index from table_name; 删除索引&#xff1a; ​ 语法格式&#xff1a;dr…

Spring Boot实现License生成和校验

1.License应用场景 在我们向客户销售商业软件的时候&#xff0c;常常需要对所发布的软件实行一系列管控措施&#xff0c;诸如验证使用者身份、软件是否到期&#xff0c;以及保存版权信息和开发商详情等。考虑到诸多应用场景可能处于离线环境&#xff0c;无法依赖网络进行实时认…

5.数据结构-c/c++二叉树详解(上篇)(遍历方法,完全二叉树)

目录 一. 二叉树的基本介绍 1.2 满二叉树 1.3 完全二叉树 1.4 搜索二叉树 1.5 平衡二叉搜索树 二. 二叉树的常用操作 2.1 二叉树的定义 2.2 创建一个新的节点 2.3 构建一颗树 2.5 销毁一棵树 三.二叉树的前序&#xff0c;中序&#xff0c;后序&#xff0c;层序遍历方…

day-47 子集

思路 利用深度优先遍历算法&#xff0c;对于每个数有选或不选两种抉择&#xff0c;每次遍历到idslen时将p加入答案中 解题过程 选中当前数字&#xff0c;调用dfs函数之后记得还原 Code class Solution {public int len;public List<List<Integer>> listnew Arra…

51单片机的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块DS1302时间模块光敏传感器模块人体红外模块按键等模块构成。适用于智能台灯、自动调节灯光亮度等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、环境光照强度、手动/自动模式、台灯亮度等信息&#xff1…