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

【高德地图开发】鼠标框选点标记,并获取标记信息

直接贴代码,自行替换高德的申请的key值

效果图如下,点击右下角区域开始使用MouseTool工具,再次点击取消使用工具
在这里插入图片描述

弹窗显示选中的点标记的附加信息,给选中的点标记设置颜色

代码如下

<!doctype html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="chrome=1">
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
		<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" type="text/css">
		<style>
			html,
			body,
			#container {
				height: 100%
			}

			#Div_Choose {
				user-select: none;
				font-size: 16px;
				color: #999;
			}

			#Div_Choose.active {
				color: red;
			}
		</style>
		<title>鼠标工具绘制</title>

		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
	</head>
	<body>
		<div id='container'></div>
		<div class="input-card" style='width: 24rem;'>
			<div id="Div_Choose" isChoose="false" style="padding: 8px 10px;cursor: pointer;">
				点击开始框选
			</div>
		</div>
		<!-- 
			自行替换高德的key
			自行替换高德的key
			自行替换高德的key
		 -->
		 <script src="https://webapi.amap.com/maps?v=2.0&key=您申请的key值&plugin=AMap.MouseTool"></script>
   
		<script type="text/javascript">
			var map = new AMap.Map('container', {
				zoom: 14
			});

			// 示例点标记经纬度
			var arr_lnglat = [
				[116.397389, 39.915161],
				[116.394728, 39.912067],
				[116.38151, 39.907524],
				[116.394213, 39.896725],
				[116.406744, 39.904693],
				[116.414211, 39.894882],
				[116.373356, 39.922204],
			];

			// 点标记集合
			var List_Marker = [];

			map.on('complete', () => {
				// 循环添加测试点标记
				for (var i = 0; i < arr_lnglat.length; i++) {
					let marker = new AMap.Marker({
						icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
						position: arr_lnglat[i],
						anchor: 'bottom-center',
						label: { content: 'Code_' + i, direction: 'bottom' },
						extData: {
							stationCode: 'Code_' + i
						}
					});
					marker.setMap(map);
					List_Marker.push(marker);
				}
			});

			var 选中的站点编码 = [];

			var mouseTool = new AMap.MouseTool(map);

			mouseTool.on('draw', function(e) {
				// 清除上次选择的点标记
				选中的站点编码 = [];
				for (var i = 0; i < List_Marker.length; i++) {
					List_Marker[i].setIcon('//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png');
				}

				// 本次绘制的方框
				var rectangle = e.obj;
				// 判断选中了哪些点标记
				for (var i = 0; i < List_Marker.length; i++) {

					var tempMark = List_Marker[i];
					var Pos = tempMark.getPosition();
					var lnglat = [Pos.lng, Pos.lat];

					if (rectangle.contains(lnglat)) {
						tempMark.setIcon('//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png');
						选中的站点编码.push(tempMark.getExtData().stationCode);
					}
				}
				alert(选中的站点编码);
				map.remove(e.obj)
			})

			// 框选按钮
			$("#Div_Choose").click(function(e) {
				var isChoose = $(this).hasClass('active');
				if (!isChoose) {
					mouseTool.rectangle({
						fillColor: '#00b0ff',
						strokeColor: '#80d8ff'
						//同Polygon的Option设置
					});
					$(this).addClass('active');
					$(this).html('点击结束框选')
				} else {
					mouseTool.close(true) //关闭,并清除覆盖物
					$(this).removeClass('active');
					$(this).html('点击开始框选')
					for (var i = 0; i < List_Marker.length; i++) {
						List_Marker[i].setIcon('//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png');
					}
				}
			})
		</script>
	</body>
</html>

相关文章:

  • Python Web应用开发之Flask框架——高级应用(一)
  • 八、排序算法
  • Git基本概念及使用
  • 搜广推校招面经四十四
  • 嵌入式音视频通话SDK组件EasyRTC:全平台设备兼容,智能硬件里的WebRTC调用实践
  • python ---cad二次开发(环境搭建)
  • 【OpenGL】01-配置环境
  • element tree树形结构默认展开全部
  • 韩国 KAIST激光雷达领域研究概况2025.3.12
  • 大模型微调中warmup(学习率预热)是什么
  • MATLAB 控制系统设计与仿真 - 24
  • 【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析
  • 嵌入式NuttX RTOS面试题及参考答案
  • Restormer: Efficient Transformer for High-Resolution Image Restoration
  • 力扣热题 100:贪心算法专题经典题解析
  • LabVIEW非线性拟合实现正弦波参数提取
  • 在MATLAB中实现PID控制仿真
  • 模型训练和推理
  • mysql8安装后没有自动生成登录密码
  • frameworks 之屏幕旋转
  • 李云泽:大型保险集团资本补充已经提上日程
  • 上海市委政法委召开会议传达学习总书记重要讲话精神
  • 重温经典|中国首部剪纸动画片《猪八戒吃瓜》创作始末
  • 胡祥|人工智能时代:文艺评论何为?
  • 山东滕州一车辆撞向公交站台撞倒多人,肇事者被控制,案件已移交刑警
  • 什么让翻拍“语文”成为短视频新风潮