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

Vue3+Vite连接高德地图JS API——地图显示、输入搜索

1 开通高德地图Web端JS API服务

1、进入高德地图API官网(https://lbs.amap.com/):
在这里插入图片描述
2、注册登录。
3、进入控制台。

在这里插入图片描述

4、点击“应用管理”,点击“我的应用”,创建新应用。

在这里插入图片描述

5、添加Key,服务平台选择“Web端(JS API)”,白名单不要填写,勾选阅读并同意。

在这里插入图片描述

点击提交后,就能看到Key已经生成,记住这里的Key和安全密钥。

在这里插入图片描述

2 配置Vue项目文件

2.1 简易方法

因此直接下载官方提供的项目,修改一下Key就能用。
1、进入网址:

https://lbs.amap.com/api/javascript-api-v2/guide/abc/amap-vue

点击“下载Vue3组件完整代码”。
在这里插入图片描述
2、修改Key
进入工程,点击MapContainer.vue,添加自己的Key。

在这里插入图片描述
3、连接服务器
调试窗口输入:

npm install
npm run dev

进入网址可以看到地图。
在这里插入图片描述

2.2 手动编写

这里编写一些搜索地点并能显示地图的小demo。

在这里插入图片描述

2.2.1 构建项目

终端输入:

npm create vue@latest

输入项目名和包名称:

gaodeMap_demo

进入工程:

cd gaodeMap_demo

安装npm

npm install

测试:

npm run dev

可以看到如下网页:
在这里插入图片描述

2.2.2 下载包

2.2.2.1 按需导入element-plus包

安装unplugin-vue-components、unplugin-auto-import:

npm install -D unplugin-vue-components unplugin-auto-import

修改vite.config.js配置文件:

// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],
})

官方链接:

https://element-plus.gitee.io/zh-CN/guide/quickstart.html#%E6%8C%89%E9%9C%80%E5%AF%BC%E5%85%A5

2.2.2.2 导入高德@amap/amap-jsapi-loader

命令行终端输入:

npm i @amap/amap-jsapi-loader --save
npm install -D unplugin-vue-components unplugin-auto-import

2.2.2 编写程序

项目中新建MapContainer.vue,用作地图组件。
代码如下:

// MapContainer.vue
<template><div>Handbook.vue的组件</div><el-input v-model="positionInput" id="searchInputId"class="common-layout"size="small"placeholder="输入关键词搜索位置"style="height:25px;width:26%;margin-left:1%;"/><el-button>搜索</el-button><div class="gdmap-container"><div id="container"></div></div>
</template><script>
import AMapLoader from "@amap/amap-jsapi-loader";
import { onMounted, onUnmounted,ref } from 'vue';export default{setup(){const positionInput = ref('');function initMap(){window._AMapSecurityConfig = {securityJsCode: "5e*********************7e7", // 密钥};	// 重要!AMapLoader.load({key: "a62*************************92b", // 申请好的Web端开发者Key,首次调用 load 时必填version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15plugins: ['AMap.AutoComplete','AMap.PlaceSearch'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等}).then((AMap) => {var map = new AMap.Map("container",{resizeEnable: true,viewMode: "3D", // 是否为3D地图模式zoom: 8, // 初始化地图级别center: [118,30], // 初始化地图中心点位置});var autoOptions = {input:"searchInputId"};var auto = new AMap.AutoComplete(autoOptions);var placeSearch = new AMap.PlaceSearch({map:map})auto.on("select",select);function select(e) {placeSearch.setCity(e.poi.adcode);placeSearch.search(e.poi.name);  //关键字查询查询}})}onMounted(() => {console.log("onmounted");initMap();});onUnmounted(() => {map?.destroy();});return{positionInput,}}
}
</script><style scoped>
.gdmap-container{width: 500px;height:300px;
}
#container {padding: 0px;margin: 0px;border:1px solid gray;width: 100%;height: 100%;
}
</style>

2.2.3 引用

为了方便这里直接修改app.vue
删除不需要的vue,添加

<template><div><MapContainer /></div>
</template><script setup>
import MapContainer from './MapContainer.vue';
</script><style scoped>
</style>

2.2.4 运行

命令行输入:

npm run dev

输入框编辑文字,可以看到如下画面:
在这里插入图片描述
搜索按钮暂时没写回调函数,将就着用。

3 问题小结

1、地图无法显示:地图的块元素div给的参数是id="container",样式中需要使用#container

2、本人在编程的时候出现了无法自动补全的情况,错误码是INVALID_USER_SCODE,官方说明是安全码未通过验证,因此添加了在代码中添加了安全密钥:

window._AMapSecurityConfig = {securityJsCode: "「你申请的安全密钥」",};

添加后,代码能够成功运行,input输入窗口下方出现了自动补全文字选项。

3、输入框最好使用el-input,其次是input的id前面不要加:,否则就是另外一个意思(我也是初学者,说不太清)。AMap的自动补全是绑定这个id的。


官网链接:

https://lbs.amap.com/api/javascript-api-v2/guide/abc/load

相关文章:

Vue3+Vite连接高德地图JS API——地图显示、输入搜索

1 开通高德地图Web端JS API服务 1、进入高德地图API官网&#xff08;https://lbs.amap.com/&#xff09;&#xff1a; 2、注册登录。 3、进入控制台。 4、点击“应用管理”&#xff0c;点击“我的应用”&#xff0c;创建新应用。 5、添加Key&#xff0c;服务平台选择“Web端&…...

一台java服务器可以跑多少个线程?

一台java服务器可以跑多少个线程&#xff1f; 一台java服务器能跑多少个线程&#xff1f;这个问题来自一次线上报警如下图&#xff0c;超过了我们的配置阈值。 打出jstack文件&#xff0c;通过IBM Thread and Monitor Dump Analyzer for Java工具查看如下&#xff1a; 共计166…...

【Python 千题 —— 基础篇】猜数字小游戏

题目描述 题目描述 猜数字。利用 random 函数随机生成一个1~100之间的数并存储在变量中&#xff0c;然后使用条件判断以及循环方式编写一个猜数字的环节&#xff1a; 如果输入的数字大于随机生成的数字&#xff0c;则输出“猜大了”如果输入的数字小于随机生成的数字&#x…...

Android Media3 ExoPlayer 如何正确设置缓存大小

在播放音视频时&#xff0c;如何开启 Android Media3 ExoPlayer 缓存&#xff0c;请参考笔者另外一篇文章&#xff1a; Android Media3 Exoplayer 开启缓存功能 笔者在设置 ExoPlayer 的缓存大小时&#xff0c;遇到一个非常奇怪的问题&#xff0c;例如&#xff0c;设置最大缓存…...

WPF实现右键选定TreeViewItem

在WPF中&#xff0c;TreeView默认情况是不支持右键选定的&#xff0c;也就是说&#xff0c;当右键点击某节点时&#xff0c;是无法选中该节点的。当我们想在TreeViewItem中实现右键菜单时&#xff0c;往往希望在弹出菜单的同时选中该节点&#xff0c;以使得菜单针对选中的节点生…...

蓝桥杯 java 重复字符串

题目描述 * 如果一个字符串S恰好可以由某个字符串重复K次得到&#xff0c;我们就称S是K次重复字符串。 * 例如 abcabcabc 可以看作是 abc重复3次得到&#xff0c;所以 abcabcabc 是3次重复字符串。 * 同理 aaaaaa 既是2次重复字符串、又是3次重复字符串和6次重复字符串。 * 现在…...

Vue实战:两种方式创建Vue项目

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 &#xff08;二&#xff09;命令行方式构建…...

不同打包工具下的环境变量配置方式对比

本文作者为 360 奇舞团前端开发工程师 天明 前言 在现代的JavaScript应用程序开发中&#xff0c;环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置&#xff0c;例如开发、测试和生产环境。最常见的需求是根据不同的环境&#xff0c;配置如是否开启sour…...

5个99%的人可能不知道的实用程序库!

前言 作为一名前端开发者,这些 JavaScript 库极大地提高了我的工作效率,如格式化日期、处理 URL 参数和调试移动网页。朋友们,我想和你们分享这些库。 1. 使用 “Day.js” 来格式化日期和时间 链接 作为开发者,我已经厌倦了在 JavaScript 中操作日期和时间,因为它太麻烦了。…...

shell脚本,ADB

Linux命令行命令是系统内置的命令或用户自定义的脚本&#xff08;shell 脚本&#xff0c;.sh扩展名结尾&#xff09;&#xff0c;可以通过终端输入命令来执行。这些命令通常存储在Linux系统的/bin、/usr/bin、/sbin、/usr/sbin等目录下&#xff0c;也可以在$PATH环境变量中指定…...

微服务治理:微服务安全详解

微服务安全旨在保护微服务架构中每一个独立的服务。与传统单体应用程序不同&#xff0c;它们在单点应用安全措施&#xff0c;微服务由于其独立性&#xff0c;需要分布式安全方法。 为何关注微服务安全&#xff1f; 攻击面扩大: 更多服务暴露在外&#xff0c;意味着攻击者拥有…...

迅为RK3588开发板编译 Buildroot单独编译图形化界面三

第三步&#xff1a;编译 Recovery 首先在 linux 源码目录下输入以下命令进入编译的 UI 界面&#xff0c;进入之后如下所示&#xff1a; ./build.sh 然后将光标移动到第四个 recovery&#xff0c;点击回车即可开始 recovery 的编译&#xff0c;编译过程如下所示&#xff1a; 编…...

yum仓库及NFS共享

目录 一.yum仓库的基本原理 1.Yum概述&#xff1a; 2.Yum实现过程&#xff1a; 二. yum配置文件及命令&#xff1a; 1. 主配置文件&#xff1a; 2. 仓库设置文件&#xff1a; 3 .日志文件&#xff1a; ​编辑4.yum命令详解&#xff1a; 三. 搭建仓库的方式&#xff1a; …...

【Web】CTFSHOW PHP特性刷题记录(全)

知其然知其所以然&#xff0c;尽量把每种特性都详细讲明白。 目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web…...

[Docker] Docker为什么出现

Docker为什么出现 一款产品&#xff1a; 开发–上线 -->两套环境 | 应用配置 开发即运维&#xff01; 环境配置十分麻烦&#xff0c;每一个机器都要部署环境&#xff08;Redis, ES, Hadoop&#xff09; 费时费力 项目带上配置环境安装打包。 传统&#xff1a; 开发jar&…...

小程序基础学习(页面跳转传参)

目录 正向传参 原理&#xff1a;直接在url里面拼接参数即可 接受参数 ​编辑 已经跳转到的页面用onLoad函数来接受即可然后写回页面展示即可 逆向传参 原理&#xff1a;通过使用 getCurrentPages()这个方法来获取返回页面列表&#xff0c;然后再用页面.setData&#xff…...

面试经典150题(85-87)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第四十三天&#xff09;完成了3道(85-87)150&#xff1a; 85.&#xff08;77. 组合&#xff09;题目描述&#xff1a; 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可…...

【C++】“Hello World!“

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Visual Studio 2022 ​ 2024.1.14 纪念一下自己编写的第一个C程序 #include<iostream>int main() {/*我的第一个C程序*/std::cout << "Hello world!:>" <<std::endl;ret…...

系统性学习vue-vue中的ajax

vue中的ajax 配置代理常用发送Ajax请求方式跨域方式一方式二 vue-resource插槽默认插槽具名插槽作用域插槽 配置代理 常用发送Ajax请求方式 xhr new XMLHttpRequest() 在真正开发中不常用&#xff0c;比较麻烦jQuery 封装了xhraxios 封装了xhr 与jQuery相比优势是&#xff1a…...

【PGSQL】date_trunc 函数

date_trunc 函数用于在 PostgreSQL 中将日期或时间戳值截断&#xff08;向下取整&#xff09;到指定的精度级别。当您想要忽略较小的时间单位&#xff08;例如&#xff0c;小时、分钟、秒&#xff09;&#xff0c;专注于较大的单位&#xff08;例如&#xff0c;天、月、年&…...

千问3.5-2B多场景落地:电商商品图识别、医疗报告图释义、工业缺陷初筛

千问3.5-2B多场景落地&#xff1a;电商商品图识别、医疗报告图释义、工业缺陷初筛 1. 开箱即用的视觉理解工具 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;它能够理解图片内容并生成相关文本描述。这个工具特别适合需要快速处理图片信息的场景&#xff0c;比如电商…...

Git从入门到精通:完整学习路线图,全面详细一次过

Git超详细使用教程&#xff1a;从入门到高级&#xff08;全面详解&#xff5c;目录结构&#xff5c;口语化专业双轨&#xff5c;长文警告&#xff09; ⚠️ 长文警告&#xff1a;全文共 6218 字&#xff0c;覆盖 Git 全生命周期操作&#xff0c;含 18 个核心章节、7 张结构化对…...

Pixel Aurora Engine效果展示:青蓝+明黄配色系像素画作视觉冲击力解析

Pixel Aurora Engine效果展示&#xff1a;青蓝明黄配色系像素画作视觉冲击力解析 1. 视觉震撼力解析 Pixel Aurora Engine通过精心设计的青蓝明黄配色方案&#xff0c;创造出极具视觉冲击力的像素艺术作品。这种色彩组合源自经典16位游戏的美学理念&#xff0c;但通过现代AI技…...

数据库课程设计好帮手:Phi-4-mini-reasoning辅助ER图设计与SQL优化

数据库课程设计好帮手&#xff1a;Phi-4-mini-reasoning辅助ER图设计与SQL优化 1. 课程设计的痛点与解决方案 每到学期末&#xff0c;计算机专业的学生们都会面临一个共同的挑战——数据库课程设计。这个需要完成ER图设计、SQL编写和文档撰写的综合项目&#xff0c;常常让初学…...

Tomato Novel Downloader:智能搜索功能的技术突破

Tomato Novel Downloader&#xff1a;智能搜索功能的技术突破 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读工具领域&#xff0c;用户体验的每一个细节都可能决定…...

毕业设计实战:基于Java+MySQL的教务管理系统设计与实现指南

毕业设计实战&#xff1a;基于JavaMySQL的教务管理系统设计与实现指南 在开发“基于JavaMySQL的教务管理系统”毕业设计时&#xff0c;曾因课程报名表未通过学生ID与课程ID双外键关联踩过关键坑——初期仅设计报名编号、报名时间等基础字段&#xff0c;未与学生表、课程表建立关…...

IP查询API性能评测指南:从响应时间到QPS的完整评估方法

在广告投放、反作弊、内容风控、日志分析等系统中&#xff0c;IP地理位置查询通常是高频、基础、不可或缺的环节。然而&#xff0c;很多团队在技术选型时往往停留在“能查到就行”的层面&#xff0c;忽视了其对系统性能、稳定性与长期成本的影响。 本文从技术评估角度出发&…...

物理信息机器学习新突破!连中SCI一区TOP刊!

小伙伴们好&#xff0c;我是小嬛。专注于人工智能、计算机视觉、AI大模型领域相关分享研究。【目标检测、图像分类、图像分割、目标跟踪等项目都可做&#xff0c;相关领域论文辅导也可以找我&#xff1b;需要的可联系&#xff08;备注来意&#xff09;】-------正文开始-------…...

路由器、交换机、光猫有什么区别?网络设备基础入门

路由器、交换机、光猫有什么区别&#xff1f;网络设备基础入门前言一、光猫、路由器、交换机分别是干什么的二、三者最核心的区别到底是什么1.它是否直接面对运营商网络&#xff1f;2.它是否负责“让多台设备上网”&#xff1f;3.它是否主要用于扩展有线接口&#xff1f;三、先…...

Cadence Virtuoso实战:从反相器原理图到GDS版图,手把手搞定你的第一个CMOS Layout

Cadence Virtuoso实战&#xff1a;从反相器原理图到GDS版图全流程解析 在集成电路设计领域&#xff0c;从原理图到物理版图的实现是一个充满挑战又极具成就感的过程。对于初入行的工程师或微电子专业学生来说&#xff0c;掌握Cadence Virtuoso工具链的完整工作流程&#xff0c;…...