html页面使用vue组件,初始化高德地图(实现绘制折线)

2023-11-06

html页面使用vue组件,初始化高德地图(实现绘制折线)

一 vue初始化地图

1. 引入高德地图的js

<script type="text/javascript"
	src="https://webapi.amap.com/maps?v=1.4.15&key=你申请的高德key"></script>

2. 初始化地图容器

<style>
#container {
	width: 100%;
	height: 100%;
	overflow: hidden;
	margin: 0;
	font-family: "微软雅黑";
}
</style>

<!- html页面 ->
<el-main id="container" style="position:relative;"></el-main> 

3. 初始化 map和 lineArr

//在vue data中添加如下代码
map:[],
lineArr:[],

4.vue挂载地图

//vue 的mounted 
	mounted: function () {
				  this.map = new AMap.Map('container', {
			        zoom:11,//级别
			        center: [115.867642,28.68305],//中心点坐标
			        viewMode:'3D'//使用3D视图
			    });
		    }

到这步地图已经可以显示了

二 绘制折线

绘制折线相对简单,传入坐标就可以
参考博客链接:https://blog.csdn.net/NN_nan/article/details/65441813

	//自定义方法	      
   showRoute(val){
			    	    //清空已划的线
			    	    this.map.clearMap();
                        //写死的数据,可以改成通过ajax动态绘制折线
			            this.lineArr.push([121.511817, 31.243308]);
			            this.lineArr.push([121.51054, 31.242932]);
			            this.lineArr.push([121.511817, 31.243308]);
			            this.lineArr.push([121.51054, 31.242932]);
			            this.lineArr.push([121.502258, 31.243474]);
			            this.lineArr.push([121.506131, 31.242831]);
			            this.lineArr.push([121.509939, 31.243574]);
			            this.lineArr.push([121.504328, 31.244758]);
			            this.lineArr.push([121.500219, 31.244694]);
			            this.lineArr.push([121.502376, 31.240657]);
			            this.lineArr.push([121.51127, 31.243538]);
			            this.lineArr.push([121.510615, 31.240281]);
			            this.lineArr.push([121.506184, 31.239584]);
			            this.lineArr.push([121.51005332464929, 31.236946810744094]);
			            this.lineArr.push([121.50769666666665, 31.243458333333333]);


		    	        // 绘制轨迹
		    	        var polyline = new AMap.Polyline({
		    	            map: this.map,
		    	            path: this.lineArr,
		    	            strokeColor: "#00A",  //线颜色
		    	            strokeOpacity: 1,     //线透明度
		    	            strokeWeight: 3,      //线宽
		    	            strokeStyle: "solid"  //线样式
		    	        });
                        //此方法会跳到划线的位置
		    	        this.map.setFitView();
			      }

三 完整展示

1. 代码

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>各种表格显示示例</title>
<meta charset="utf-8">
<meta name="viewport"
	content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<meta name="_csrf" th:content="${_csrf.token}"></meta>
<meta name="_csrf_header" th:content="${_csrf.headerName}"></meta>
<script type="text/javascript"
	src="https://webapi.amap.com/maps?v=1.4.15&key=你的key"></script>
<!-- 所有的 css & js 资源 -->
<link rel="stylesheet"
	href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
<link rel="stylesheet" th:href="@{login/sa.css}">
<link rel="stylesheet" th:href="@{login/tree.css}">
<script src="https://unpkg.com/vue@2.6.10/dist/vue.min.js"></script>
<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.min.js"></script>
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
<script th:src="@{login/sa.js}"></script>
<style type="text/css">
/* body {
	background-color: #FFF;
} */
#container {
	width: 100%;
	height: 100%;
	overflow: hidden;
	margin: 0;
	font-family: "微软雅黑";
}

#up-map-div {
	width: 278px;
	height: 50px;
	margin-left: 20px;
	top: 6px;
	position: absolute;
	z-index: 9999;
}

.el-row {
	margin-bottom: 20px;
	&:
	last-child
	{
	margin-bottom
	:
	0;
}

}
.el-col {
	border-radius: 4px;
}

.bg-purple-dark {
	background: #99a9bf;
}

.bg-purple {
	background: #d3dce6;
}

.bg-purple-light {
	background: #e5e9f2;
}

.grid-content {
	border-radius: 4px;
	min-height: 36px;
}

.row-bg {
	padding: 10px 0;
	background-color: #f9fafc;
}
.box-card {
    width: 260px;
    text-align:center;
  }
  .span-bg{
    color:#C0C0C0;
     text-align:left;
  }
 
</style>
</head>
<body>
	<div style="margin-top: -1em;" title="防止margin向下击穿">
		<br>
	</div>
	<div class="vue-box" style="display: none;" :style="'display: block;'">
		<el-container style="border: 1px solid #eee;"> <el-aside
			width="auto">
			<el-scrollbar>
		<div class="map-aside">
			<el-row v-for="(item,index) in dataList" type="flex" :gutter="20"
				justify="align"> <button style="border:none;outline:none;"  @click="showRoute(item.id)"><el-col :span="8"> 
				<el-card class="box-card" shadow="hover">
				<p><span>{{index+1}}.{{item.road_coding}}{{item.road_name}}</span></p>
				<br>
				<p class="span-bg">单位: <span class="span-bg" v-html="item.unit_name"></span></p>
				<br>
				<p class="span-bg">范围:K<span v-html="reversedMessage(item.start_pile_no)"></span> K<span class="span-bg" v-html="reversedMessage(item.end_pile_no)"></span>
				</p>
			</el-card> </el-col> 
			</button>
			</el-row>
			<div class="page-box">
				<el-pagination background small :current-page.sync="p.page"
					:page-size.sync="p.size" layout="total,prev, pager, next"
					:total="dataCount"> </el-pagination>
			</div>
		</div>
	</el-scrollbar>
		</el-aside> <el-container> <el-form id="up-map-div"
			@submit.native.prevent style="position:absolute;float:left">
		<div class="c-item">
			<el-input size="mini" v-model="p.coding" placeholder="路线编码" clearable></el-input>
			&nbsp;
			<el-button size="mini" type="primary" icon="el-icon-search"
				@click="p.page = 1; f5()">查询</el-button>
		</div>
		</el-form> <el-main id="container" style="position:relative;"> 
		</el-main> 
		</el-container>
		 </el-container>
	</div>
	<script>
		var app = new Vue({
			el : '.vue-box',
			data : {
				p : { // 查询参数  
					id:'',
					coding : '',
					page : 1,
					size : 10,
					sort : '',
				},
				dataCount : 0,
				dataList : [], // 数据集合
				map:[],
				lineArr:[],
			},
			methods : {
				// 刷新
				f5 : function() {
					sa.ajax('/routes', this.p, function(res) {
						this.dataList = res.data.content;
						this.dataCount = res.data.totalElements; // 分页
					}.bind(this),{type:'GET'});
				},
			      reversedMessage:function(val) {
			    	  if(val==0){
			    		  return "0+000"
			    	  }else{
			    		  return val.toString().replace(".","+");
			    	  }		    
				    },
			      showRoute(val){
			    	    //清空已划的线
			    	    this.map.clearMap();
			            this.lineArr.push([121.511817, 31.243308]);
			            this.lineArr.push([121.51054, 31.242932]);
			            this.lineArr.push([121.511817, 31.243308]);
			            this.lineArr.push([121.51054, 31.242932]);
			            this.lineArr.push([121.502258, 31.243474]);
			            this.lineArr.push([121.506131, 31.242831]);
			            this.lineArr.push([121.509939, 31.243574]);
			            this.lineArr.push([121.504328, 31.244758]);
			            this.lineArr.push([121.500219, 31.244694]);
			            this.lineArr.push([121.502376, 31.240657]);
			            this.lineArr.push([121.51127, 31.243538]);
			            this.lineArr.push([121.510615, 31.240281]);
			            this.lineArr.push([121.506184, 31.239584]);
			            this.lineArr.push([121.51005332464929, 31.236946810744094]);
			            this.lineArr.push([121.50769666666665, 31.243458333333333]);


		    	        // 绘制轨迹
		    	        var polyline = new AMap.Polyline({
		    	            map: this.map,
		    	            path: this.lineArr,
		    	            strokeColor: "#00A",  //线颜色
		    	            strokeOpacity: 1,     //线透明度
		    	            strokeWeight: 3,      //线宽
		    	            strokeStyle: "solid"  //线样式
		    	        });
		    	        this.map.setFitView();
			      }
			},
			created : function() {
				this.f5();
		    	 
			},
			mounted: function () {
				  this.map = new AMap.Map('container', {
			        zoom:11,//级别
			        center: [115.867642,28.68305],//中心点坐标
			        viewMode:'3D'//使用3D视图
			    });
		    }
			
		})
	</script>
</body>
</html>

2. 界面效果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

html页面使用vue组件,初始化高德地图(实现绘制折线) 的相关文章

  • AcWing110. 防晒

    输入样例 3 2 3 10 2 5 1 5 6 2 4 1 输出样例 2 解析 按照右区间排序 优先满足小的 include

随机推荐

  • python读取图片的几种方式

    opencv的像素值在 0 1 0 1 show的时候转换到 0 255 import cv2 img cv2 imread imgfile cv2 imshow img win name img cv2 waitKey 0 无限期等待输入
  • 不要自称为程序员

    如果有我可以添加到每个工程教育的一门课程 它不涉及编译器或门或时间复杂度 这将是您工业101的现实 因为我们不教他们和许多不必要的痛苦和折磨这个结果 这后立志要为你作为一个年轻的工程师的职业生涯中的自我介绍 填写在您的教育差距 就如何在 现
  • TMPGEnc 4.0 XPress(小日本4)优化安装教程

    小日本4 TMPGEnc 4 0 XPress 是小日本2 54的升级版本 与小日本2 54之间本来还有一个3 0 版本 不过3 0 没有产生太大影响即升级到4 0 版本 尽管是小日本2 54的升级版本 但3 0 以后此软件便属于全新开发
  • VirtualBox安装OpenWRT虚拟机,及Kernel panic - not syncing: Attempted to kill init故障排除

    编译或下载镜像文件 openwrt x86 generic Generic combined ext4 img gz 解压 gunzip d openwrt x86 generic Generic combined ext4 img gz
  • c++构建正态分布的随机数

    最近编程的时候遇到一个问题 需要用c 来产生一个满足正态分布的的随机数 用c 产生一个均匀分布的随机数很容易 但是满足正态分布还是有点懵逼的 然后就在网上搜一些资料 发现有三种方法可以产生正态分布的随机数 但是看别人从理论上的推导 感觉还是
  • node——使用Nginx + Node.js部署你的网站

    Nginx是一个高性能的HTTP和反向代理服务器 反向代理就是通常所说的web服务器加速 它是一种通过在繁忙的web服务器和internet之间增加一个高速的web缓冲服务器来降低实际的web服务器的负载 Nginx由俄罗斯程序员利用C语言
  • python的动态加载的一个注意地方

    先描述一下我的问题背景 然后给出错误发现 最终给出解决办法 1 我有很多python文件 并且这些文件内容会按照一定周期被更新但是文件名字不变 并且每个文件内都有一个一样的class的名字 需要我去动态调用 我的调用方法是使用的python
  • Spring-03 Aop简介,实现原理,基于ProxyFactoryBean实现Aop,基于AspectJ开发的实现

    Spring 03 1 SpringAop简介 AOP的全称是Aspect Oriented Programming 即面向切面编程 也称面向方面编程 它是面向对象编程 OOP 的一种补充 目前已成为一种比较成熟的编程方式 aop 解决的问
  • C语言——白盒测试

    深入理解白盒测试的基本方法 运用基本路径测试法设计测试用例 1 掌握白盒测试技术中基本路径测试法的基本步骤 2 训练针对具体程序运用基本路径测试法设计测试用例的能力 测试代码 DEVcpp 源代码 点击此处可下载 include
  • Android 自动化触发GC

    问题 最近有个小需求 能通过自动化对app进行GC回收 对于app的处理无外乎主动调用System gc 或者使用adb命令直接进行GC回收 解决方法 方法一 在代码里的某个方法调用System gc 如我申明一个receiver 然后通过
  • linux:SecureCRT SSH连接报错 Key exchange failed. No compatible key exchange method

    问题 配置ssh后提示 Key exchange failed No compatible key exchange method The server supports these methods curve25519 sha256 cu
  • 数据分析36计(九):倾向得分匹配法(PSM)量化评估效果分析

    1 因果推断介绍 如今量化策略实施的效果评估变得越来越重要 数据驱动产品和运营 业务等各方的理念越来越受到重视 如今这方面流行的方法除了实验方法AB testing外 就是因果推断中的各种观察研究方法 统计相关性并不意味着因果关系 数据分析
  • 高性能Mysql——一条SQL语句在Mysql中是如何执行的?

    文章目录 MySQL 基本架构概览 Server层介绍 SQL执行过程 查询语句 更新语句 SQL执行过程的日志问题 本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程 包括 sql 的查询在 MySQL 内部会怎么流转 sql
  • Topaz Video AI for Mac 3.3.3

    Topaz Video AI是一款使用人工智能技术对视频进行增强和修复的软件 它可以自动降噪 去除锐化 减少压缩失真 提高清晰度等等 Topaz Video AI可以处理各种类型的视频 包括低分辨率视频 老旧影片 手机录制的视频等等 使用T
  • Java线程池源码解析及使用

    1 线程池的用处 Java 引入 Excutor 框架将任务的提交和执行进行解耦 只需要定义好任务 然后提交给线程池即可 使用线程池的时机 单个任务处理时间比较短 需要处理的任务数量很大 线程池的优点 降低资源消耗 通过重复利用已创建的线程
  • 【Java 基础】Java Validation API分组,顺序校验,以及自定以校验注解的优雅写法

    前言 我们后端需要对前端或者其它地方传过来的参数需要进行校验 其中JSR303定义了一些标准 接下来我们看看是如何实现分组校验和顺序校验的 前置工作 如下是一个基础测试实体类 和一个测试controller Data public clas
  • Servlet+JDBC实战开发书店项目讲解第六篇:订单实现

    Servlet JDBC实战开发书店项目讲解第六篇 订单实现 1 数据库设计 在订单实现之前 我们需要对数据库进行相应的设计 在这个书店项目中 我们可以创建以下两个表来实现订单功能 1 1 订单表 Order 订单ID order id 主
  • 剪映电脑版使用教程(超详细)

    目录 页面设置 流程 素材详解 1 导入素材 2 注意导入素材的格式 3 添加素材到时间线面板 4 素材的删除 5 素材的分割 6 素材的伸缩 时间线面板详解 1 多条轨道的重叠 2 多条轨道的素材导入 3 多条轨道的分割 4 定格功能 5
  • Echarts折线图属性设置大全

    Echarts折线图属性设置大全 var option backgroundColor FFF0F5 title text 折线图 subtext 模拟数据 x center legend orient 设置布局方式 默认水平布局 可选值
  • html页面使用vue组件,初始化高德地图(实现绘制折线)

    html页面使用vue组件 初始化高德地图 实现绘制折线 一 vue初始化地图 1 引入高德地图的js 2 初始化地图容器