【高德地图API】JS高德地图实现点标连线,高德地图实现点跟点连线,高德地图实现连线

news2024/11/17 23:42:58

前言

高德地图API参考:https://lbs.amap.com/demo/javascript-api/example/marker/custom-icon
实现各个点标的经纬度连线,点击点标可查看内容(自定义的)

效果

在这里插入图片描述

实现

案例实现,复制粘贴,将安全密钥和key替换成自己的即可使用

<!doctype html>
<html>

	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
		<title>点跟点连线</title>
		<style>
			html,
			body,
			#container {
				height: 100%;
				padding: 0;
				margin: 0;
			}
			
			.custom-content-marker {
				position: relative;
				width: 25px;
				height: 34px;
			}
			
			.custom-content-marker img {
				width: 100%;
				height: 100%;
			}
			
			.custom-content-marker span {
				position: absolute;
				left: 0;
				top: 2px;
				width: 100%;
				text-align: center;
				color: #fff;
			}
			
			.custom-content-text {
				position: absolute;
				left: 25px;
				top: 2px;
				color: #000000;
				background: #fff;
				padding: 4px;
				min-width: 150px;
				border-radius: 4px;
				font-size: 12px;
				display: none;
				box-shadow: #00000020 0 2px 5px 0;
			}
			
			.custom-content-text .close-icon {
				position: absolute;
				right: -8px;
				top: -10px;
				border-radius: 50px;
				width: 20px;
				height: 20px;
				line-height: 20px;
				background: #fff;
				text-align: center;
				font-style: normal;
				cursor: pointer;
			}
			
			.custom-content-text .close-icon:hover {
				background: #b9b9b9;
				color: #fff;
			}
		</style>
	</head>

	<body>
		<div id="container"></div>
	</body>
	<script type="text/javascript">
		window._AMapSecurityConfig = {
			securityJsCode: 'bf5*****************886',
		}
	</script>
	<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=22d*****************0b8&plugin=AMap.Polyline"></script>
	<script type="text/javascript">
		// 创建多边形
		var markers = [
			[116.389632, 39.919505],
			[116.403322, 39.920254],
			[116.396713, 39.90693],
			[116.421947, 39.905391],
			[116.416497, 39.894658],
			[116.402292, 39.892354],
			[116.385255, 39.897721],
			[116.382981, 39.907301]
		];

		//初始化地图对象,加载地图
		var map = new AMap.Map("container", {
			resizeEnable: true,
			center: markers[0],
			zoom: 14
		});

		// 添加点标(除了第一个和最后一个改了图标,其他都是设置自定义内容,也可以使用简单的默认点标无需这么麻烦)
		for(var i = 0; i < markers.length; i++) {
			if(i == 0) {
				// 创建一个 Icon
				var startIcon = new AMap.Icon({
					// 图标尺寸
					size: new AMap.Size(25, 34),
					// 图标的取图地址
					image: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-marker.png',
					// 图标所用图片大小
					imageSize: new AMap.Size(135, 40),
					// 图标取图偏移量
					imageOffset: new AMap.Pixel(-9, -3)
				});
				// 将 icon 传入 marker
				var startMarker = new AMap.Marker({
					position: markers[i],
					icon: startIcon,
					offset: new AMap.Pixel(-13, -30)
				});
				map.add(startMarker);
			} else if(i == markers.length - 1) {
				var endIcon = new AMap.Icon({
					size: new AMap.Size(25, 34),
					image: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-marker.png',
					imageSize: new AMap.Size(135, 40),
					imageOffset: new AMap.Pixel(-95, -3)
				});
				var endMarker = new AMap.Marker({
					position: markers[i],
					icon: endIcon,
					offset: new AMap.Pixel(-13, -30)
				});
				map.add(endMarker);
			} else {
				// 点标记显示内容,HTML要素字符串
				var markerContent = '<div class="custom-content-marker" οnclick="showContent(' + i + ')">';
				markerContent += '   <img src="//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png">';
				markerContent += '   <span>' + i + '</span>';
				markerContent += '</div>';
				markerContent += '<div class="custom-content-text custom-content-text-' + i + '">';
				markerContent += '	<span>内容' + i + '</span>';
				markerContent += '	<i class="close-icon" οnclick="closeContent(' + i + ')">X</span>';
				markerContent += '</div>';
				var marker = new AMap.Marker({
					position: markers[i],
					content: markerContent,
					// 以 icon 的 [center bottom] 为原点
					offset: new AMap.Pixel(-13, -30)
				});
				map.add(marker);
			}
		}

		// 绘画线条
		var polyline = new AMap.Polyline({
			path: markers,
			strokeColor: "#3366FF",
			strokeWeight: 4,
			strokeOpacity: 1,
			strokeStyle: "solid",
			strokeDasharray: [10, 5],
			lineJoin: "round"
		});
		polyline.setMap(map);

		//map.setFitView();

		/**
		 * 显示自定义标点的内容
		 * @param {Object} i
		 */
		function showContent(i) {
			var text = document.getElementsByClassName('custom-content-text-' + i)[0];
			text.style.display = 'block';
		}

		/**
		 * 隐藏显示的标点内容
		 * @param {Object} i
		 */
		function closeContent(i) {
			var text = document.getElementsByClassName('custom-content-text-' + i)[0];
			text.style.display = 'none';
		}
	</script>

</html>

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

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

相关文章

个性化联邦学习-综述

介绍阅读的三篇个性化联邦学习的经典综述文章 Three Approaches for Personalization with Applications to Federated Learning 论文地址 文章的主要内容 介绍了用户聚类&#xff0c;数据插值&#xff0c;模型插值三种个性化联邦学习的方法。 用户聚类&#xff1a; 目的&a…

工作四年,我学会了用 Idea本地调试线上服务器代码

文章目录 工作四年&#xff0c;我学会了用 Idea本地调试线上服务器代码&#x1f4c6; 一.那些辛酸的过往&#x1f4d5;二.远程debug原理远程调试分类主动连接调试&#xff1a;被动连接调试&#xff1a; &#x1f44b;三.操作步骤3.1.准备一个简单springboot程序 例如helloworld…

【带头学C++】----- 三、指针章 ---- 3.11 补充重要指针知识

1.指针的指针&#xff08;多级指针&#xff09; 指针的指针&#xff08;Pointer to Pointer&#xff09;是指一个指向指针的指针变量。也就是说&#xff0c;它存储了一个指向指针的内存地址。在C中&#xff0c;指针的指针可以用来传递多个指针参数&#xff0c;或者用于在函数内…

期中成绩发布啦

期中考试过后&#xff0c;老师们最头疼的事情之一就是成绩的录入和发布。而学生们最关心的事情之一则是如何能够快速、方便地查询到自己的成绩。那么&#xff0c;如何让学生自主查询成绩呢&#xff1f;下面就给大家介绍几种简单实用的方法。 一、使用学校官网或教务系统查询 现…

1698 - Access denied for user ‘root‘@‘192.168.229.1‘

目录 1. 问题现象 2. 问题分析及解决方法 1. 问题现象 在使用mysql连接工具连接mysql的时候如下&#xff1a; 出现了如下错误&#xff1a; 2. 问题分析及解决方法 出现这种错误一般有两种情况&#xff1a;一种是密码输入错误&#xff0c;重新检查一下密码再试一下&#xf…

后期混音效果全套插件Waves 14 Complete mac中文版新增功能

Waves 14 Complete for Mac是一款后期混音效果全套插件&#xff0c;Waves音频插件,内置混响&#xff0c;压缩&#xff0c;降噪和EQ等要素到建模的模拟硬件&#xff0c;环绕声和后期制作工具&#xff0c;包含全套音频效果器&#xff0c;是可以让你使用所有功能。Waves 14 Comple…

简述SVM

概述 SVM&#xff0c;即支持向量机&#xff08;Support Vector Machine&#xff09;&#xff0c;是一种常见的监督学习算法&#xff0c;用于分类和回归问题。它是一种基于统计学习理论和结构风险最小化原则的机器学习方法。 SVM的主要思想是在特征空间中找到一个最优的超平面…

智慧农业:农林牧数据可视化监控平台

数字农业是一种现代农业方式&#xff0c;它将信息作为农业生产的重要元素&#xff0c;并利用现代信息技术进行农业生产过程的实时可视化、数字化设计和信息化管理。能将信息技术与农业生产的各个环节有机融合&#xff0c;对于改造传统农业和改变农业生产方式具有重要意义。 图扑…

AVL平衡树的插入

//AVL搜索树 //对数据的搜索&#xff1a; 1&#xff1a;暴力查找遍历 // 2:二叉树 有序&#xff0c;但是伴随着插入删除&#xff0c;维护成本很高 // 3&#xff1a;二叉搜索树 问题&#xff1a;在极端情况下&#xff0c;会退化成最开始的链表 // …

inne所属公司抢注“童年时光”商标仍被冻结

根据中国商标网查询&#xff0c;国家知识产权局已于2023年3月10日裁定&#xff0c;被告inne所属的南京童年时光生物技术有限公司注册的“童年时光”商标无效。随着这起保健品行业品牌资产争夺事件的发酵&#xff0c;更多的细节得到披露&#xff0c;至此&#xff0c;一个从“代理…

低代码+RPA,会发生什么?

据相关研究表明&#xff0c;每个企业员工每天至少花1-2个小时完成文件归档、数据输入等工作&#xff0c;而这些工作都是可以通过自动化的方式完成的。 如今&#xff0c;不少企业正专注于工作流程自动化&#xff0c;希望能花最少的时间完成重复性工作&#xff0c;机器人流程自动…

Python基础入门(17)----Python虚拟环境:为何要用虚拟环境、如何使用virtualenv

文章目录 在Python开发中,虚拟环境是一个独立的目录树,可以在其中安装Python模块。每个虚拟环境都有自己的Python二进制文件和一组安装的库。使用虚拟环境的主要原因是为了避免项目间的依赖冲突,允许每个项目有其特定的依赖,而不影响全局安装的模块。 为何要用虚拟环境 依…

Vue 最简单路由 页面路由 配置路由

路由安装 Vue3使用 vue-router4 Vue2使用 vue-router3 npm i vue-router3创建路由文件 配置路由规则 import Vue from vue import VueRouter from vue-router //导入路由器 Vue.use(VueRouter)import Login from ../components/Login import User from ../components/User //…

17、Python虚拟环境:为何要用虚拟环境、如何使用virtualenv

文章目录 在Python开发中,虚拟环境是一个独立的目录树,可以在其中安装Python模块。每个虚拟环境都有自己的Python二进制文件和一组安装的库。使用虚拟环境的主要原因是为了避免项目间的依赖冲突,允许每个项目有其特定的依赖,而不影响全局安装的模块。 为何要用虚拟环境 依…

Linux 进程的管道通信

文章目录 无名管道pipe有名管道 进程之间的通信&#xff1a;Linux环境下&#xff0c;进程地址空间相互独立&#xff0c;每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另外一个进程中都看不到&#xff0c;所以进程之间不能相互访问&#xff0c;要交换数据必须通过…

分享68个毕业答辩PPT,总有一款适合您

分享68个毕业答辩PPT&#xff0c;总有一款适合您 链接&#xff1a;https://pan.baidu.com/s/1trwZ8T2I2rFh59LVxTSXTw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知识付费甚欢…

开源DB-GPT实现连接数据库详细步骤

官方文档&#xff1a;欢迎来到DB-GPT中文文档 — DB-GPT &#x1f44f;&#x1f44f; 0.4.1 第一步&#xff1a;安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步&#xff1a;安装Git Git - Downloading Package 第三步&#xff1a;安装embedding 模型到…

TFTP协议详解

1.简介 TFTP&#xff08;Trivial File Transfer Protocol,简单文件传输协议&#xff09;是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69。 FTP是一个传输文件的简单协议&#xff0c;它基…

亚马逊怎么下单更真实

亚马逊是一个知名的在线购物平台&#xff0c;为了下单更真实&#xff0c;可以采取以下步骤&#xff1a; 1、查看商品信息&#xff1a;在浏览亚马逊的商品时&#xff0c;仔细查看商品描述、照片和客户评价。这些信息可以帮助你了解产品的真实情况。 2、对比价格&#xff1a;比…

Android Studio(项目打包成APK)

打包流程 直接上图即可 按照上面操作后&#xff0c;即可以开始打包&#xff0c;一般第一次打包都需要几分钟&#xff08;我第一次打包花了七八分钟&#xff09;&#xff0c;如果打包错误了也别担心&#xff0c;可以查看错误分析一下原因&#xff0c;实在不行可以把错误放到网站…