vue3中引入高德地图初始化,并添加、删除marker

news2024/11/25 20:53:12

目录

先上图

1.npm引入插件(高德地图官方推荐)

2.页面中引入使用

3.地图初始化

4.标记marker的添加和删除


先上图

1.npm引入插件(高德地图官方推荐)

npm install @amap/amap-jsapi-loader

2.页面中引入使用

import AMapLoader from '@amap/amap-jsapi-loader';

AMapLoader.load({
	key: "yourkey",
	version: "2.0",
	// resizeEnable: true,
	plugins: [
		'AMap.PathSimplifier','AMap.Geocoder', 'AMap.MouseTool', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.AutoComplete',
		'AMap.PlaceSearch'
	]

}).then(() => {
	console.log('地图加载成功');
}).catch(err => {
	console.log('地图加载失败');
})

如果有多个页面使用到地图,可以在main.js中引入,即可全局注册AMapLoader

key的获取,进入高德地图开发平台--控制台,复制自己的key

全局配置安全密钥(获取方式同上)

window._AMapSecurityConfig = {
	securityJsCode: 'yourCode' //*  安全密钥
}

 plugins用于配置使用的插件,可自行按需配置

3.地图初始化

<div id="mapContainer"></div>
onMounted(()=>{
    initMap()
)

let map = null

const initMap = () => {
		try {
			map = new AMap.Map("mapContainer", {
				resizeEnable: true,
				zoom: 5,
				mapStyle: "amap://styles/darkblue",//地图主题(可选)
				center: [116.478935, 39.997761], //初始化地图中心点位置
			});
		} catch (err) {
			ElMessage.error('地图加载失败')
		}
	}

 经过AMapLoader.load初始化后,便可以如上所述直接使用AMap对象

4.标记marker的添加和删除

①获取关于marker的数据,至少有经纬度,若有多个marker,需有一个参数用来标记,从而区分不同的marker

例如:

[{
    id: 1,
	long: 117.2563,
    lat: 31.1555
},
{
    id: 2,
	long: 115.2563,
    lat: 34.1555
},
......
]

②绘制marker图标

创建图标并设置尺寸样式

const onlineIcon = new aMap.value.Icon({
	size: new aMap.value.Size(75, 133), // 图标大小
	image: require('../assets/other/onlinedev.png'), 
    // 自定义图片路径,需确保图片可访问
	imageOffset: new aMap.value.Pixel(0, 0), // 图像相对于点的位置偏移
});

③添加marker图标和文字,并绑定图标的点击事件(多个)

let markers = reactive({})
let markerList = []
//addArr.value为marker的数据
addArr.value.map(device => {
			var marker = new aMap.value.Marker({
				icon: onlineIcon,
				position: [device.lang, device.lat],
				anchor: 'bottom-center'
			});
			// 图标下的文字
			marker.setLabel({
				direction: 'bottom',
				offset: new aMap.value.Pixel(0, 10), //设置文本标注偏移量
				content: `<div class="labeltext" 
style="backgroundcolor:#21C754'}">{{device.ID}}</div>`, //设置文本标注内容
			});
			//如果markers没有包含 则新增 
			if (!markers[device.ID]) {
				markers[device.ID] = marker
				map.add(marker);
				markerList.push(marker)
				// 标记点添加点击事件
				markers[device.ID].on('click', function() {
					console.log('点击了' + device.ID);
				})
			}
		})

//地图实例上添加
map.setFitView(markerList, true, [150, 60, 60, 60], 15);

参数说明

markers:用于存储已添加的marker的标记和实例

markersList:marker实例,用于批量添加

 map.setFitView的第三个参数[150,60,60,60]控制上下左右的距离,防止边缘被遮挡

④删除marker

获取到要删除的marker的ID信息,此处用上之前定义的

markInfo.map(device => {
	map.remove(markers[device.deviceID])
	delete markers[device.deviceID]
})

以上就是本期文章全部内容,如需了解更多高德地图使用

可参考主页专栏其他文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045477.html

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

相关文章

Therabody™明星产品TheragunⓇ筋膜枪,以科技健康助力舞台高光时刻

&#xff08;2024 年 8月16日&#xff0c;中国上海&#xff09;近日&#xff0c;热门音乐竞演综艺《披荆斩棘》携最新一季热血回归&#xff0c;节目邀请三十四位知名男艺人走上舞台&#xff0c;带来精彩绝伦的表演&#xff0c;受到广大观众的喜欢。Therabody™的明星产品Therag…

科目一满分刷题技巧(三)

十六、三超扣分★常考 口诀&#xff1a;高速扣分&#xff0c;上扣12下扣6&#xff1b; 普路扣分&#xff0c;普车3下6上&#xff1b;校中危记住9/6/1 口诀&#xff1a;校客旅&#xff0c;上扣12&#xff0c;下扣6 普车超载100%扣12&#xff0c;(50%基准&#xff0c;3下6上)…

本地连接腾讯云服务器

本地连接腾讯云服务器 1 查看服务器信息1.1 登录腾讯云官网1.2 打开开发者控制台1.3 打开已购买的服务器1.4 查看系统类型和 IP 2 本地连接服务器 1 查看服务器信息 1.1 登录腾讯云官网 官网链接 1.2 打开开发者控制台 控制台链接 1.3 打开已购买的服务器 1.4 查看系统类型…

企业图纸要怎么加密?2024年最好用的十款图纸加密软件排行榜

在数字化进程不断加速的2024年&#xff0c;企业图纸的安全保护愈发重要。如何有效地对企业图纸进行加密&#xff0c;成为了众多企业关注的焦点。为了帮助您找到最佳的解决方案&#xff0c;我们精心整理了2024年最好用的十款图纸加密软件排行榜。 1. 安秉图纸加密软件 安秉图纸…

AI编程工具合集

GPT-4o (OpenAI) 这里是一些知名和广泛使用的AI编程工具及其简要介绍&#xff1a; 1. 框架和库 (Frameworks and Libraries) - TensorFlow: 由谷歌开发的开源深度学习框架&#xff0c;支持多种平台&#xff0c;适合构建和训练复杂神经网络。 - PyTorch: 由Facebook的人工智能研…

Unity Recttransform操作

1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…

3-3 红外人体感应模块(智能应用篇)

3-3 红外人体感应模块&#xff08;智能应用篇&#xff09; 3-3 红外人体感应模块介绍红外人体感应传感器模块&#xff08;HC-SR501原理&#xff09;电路连接示例程序效果演示人体感应传感器模块调节控制&#xff08;1&#xff09;调节感应距离&#xff08;2&#xff09;调节感应…

COMSOL碱性电解槽

记录下COMSOL案例库里面的碱性电解槽对应的文献资料和心得 文献资料参考&#xff1a; 1&#xff1a;Multiphase Fluid Dynamics and Mass Transport Modeling in a Porous Electrode toward Hydrogen Evolution Reactionhttps://pubs.acs.org/doi/10.1021/acs.iecr.2c00990# 2&…

one-shot 序列图像红外小目标分割

one-shot 序列图像红外小目标分割 IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING 代码还未开源 GitHub - D-IceIce/one-shot-IRSTS few-shot&#xff1a;利用少量标注样本进行学习 one-shot: 属于few-shot的特殊情况&#xff0c;只用一个样本进行学习 zero-shot&am…

利用Proxy302构建高效代理IP平台:从功能到架构解析

在现代互联网环境中&#xff0c;代理IP已成为企业和个人在隐私保护、网络爬虫、广告验证等场景中的关键工具。在众多代理IP平台中&#xff0c;如何选择一个高效且易用的平台&#xff1f;怎么搭建企业自己的代理IP平台&#xff0c;本文将从多个维度对进行深度分析与简易架构拆解…

你的 “可爱” 同事 justify-content 还在写 left、right 吗??

据 w3c 文档记录&#xff1a; 所以&#xff1a; justify-content 的取值只有这几种&#xff1a; flex-start | flex-end | center | space-between | space-around 千万不要向我 “可爱” 的同事一样这么写&#xff1a; 和他说了还在那里狡辩说来说去不是她 结果一…

2024.8.16(ansible)

一、回顾 1、mysql和python 1. mysql5.7 1.1 不需要执行mysql_ssl_rsa_setup 1.2 Change_master_to. 不需要get public key 2. 可以使用pymysql非交互的管理mysql 2.1 connpymysql.connect(host,user,password,database,port) 2.2 cursorconn.cursor() 2.3 cursor.execute(&qu…

激光雷达点云投影到图像平面

将激光雷达点云投影到图像平面涉及几何变换和相机模型的应用。以下是该过程的基本原理&#xff1a; 1. 坐标系转换 激光雷达生成的点云通常位于激光雷达的坐标系中&#xff0c;而图像则在相机坐标系中。为了将点云投影到图像上&#xff0c;首先需要将点云从激光雷达坐标系转换…

绝对的美剧之最:通宵追剧的最佳选择

在众多美剧中&#xff0c;《火线》堪称冷门中的神作。2002年由HBO出品&#xff0c;共五季&#xff0c;豆瓣评分9.4到9.7分&#xff0c;IMDb也高达9.3分。对于剧迷来说&#xff0c;《火线》无疑是美剧中的天花板。 不同于一般美剧&#xff0c;《火线》没有炫目的动作场面&#x…

使用MYSQL函数问题

使用mysql函数遇到的坑 最近项目需要做很多的报表统计&#xff0c;用到一些mysql的函数。今天就讲其中两个函数的问题 DATE_SUB函数 查询近七天数据 SELECT * FROM my_table WHERE DATE(create_date) >DATE_SUB(CURDATE(), INTERVAL 7 DAY) 这是在网上找的答案&#xf…

Royal累计勒索金额超36亿元,加强服务器防勒索防护迫在眉睫

近日&#xff0c;美国联邦调查局&#xff08;FBI&#xff09;和网络安全与基础设施安全局&#xff08;CISA&#xff09;联合发布的警报引起了全球网络安全界的广泛关注。曾以"皇家&#xff08;Royal&#xff09;"之名臭名昭著的勒索软件组织&#xff0c;现更名为&quo…

AI大模型开发——5.transformer模型(0基础也可懂)(2)

3. 编码处理器&#xff08;Bert&#xff09; transformer模型的编码器构成了模型处理输入数据的基础部分。编码器的设计使其能够处理复杂的序列数据&#xff0c; 捕获序列内部的细粒度依赖关系。它通过一系列的层来实现&#xff0c; 每一层都包含自注意力机制、残差连接( Resid…

【三维重建】InstantSplat:稀疏视角的无SfM高斯泼溅 (3D Gaussian Splatting)

提示&#xff1a;关注B站【方矩实验室】&#xff0c;查看视频讲解 文章目录 1.摘要2.Introduction3.主要方法3.1 MVS&#xff08; DUSt 3R &#xff09;3.2 GS的初始化3.3 联合优化 4.实验5.总结 1.摘要 InstantSplat将多视图立体&#xff08;MVS&#xff09;预测与基于点的表示…

【计算机方向】五本中科院二区SCI神刊!最快3个月accept,国人发文友好,晋升靠它们!

本期将为您带来五本计算机SCI 妥妥毕业神刊&#xff01; VISUAL COMPUTER International Journal of Computer Vision INFORMATION AND SOFTWARE TECHNOLOGY Nonlinear Analysis-Hybrid Systems Complex & Intelligent Systems 期刊名称&#xff1a;VISUAL …

总结常见报错信息

一、报错内容 Circular view path [index]: would dispatch back to the current handler URL [/login/index] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) 解决方法&#xff1a;把C…