echarts3D地图+3D柱状图+3D飞线图

该文章展示了如何利用Echarts5.4.0和Echarts-GL2.0.8库,结合自定义的西安GeoJSON数据,来构建一个3D地理可视化应用。代码示例中,作者注册了西安的地图数据,设置了3D地理坐标系统,创建了带有柱状图和飞线特效的3D地图,用于展示各区的数据分布。
摘要由CSDN通过智能技术生成

echarts版本:5.4.0

echarts-gl版本:2.0.8

 示例代码:

<template>
	<div>
		<div ref="chinaMap" id="chinaMap" style="width: 90vw;height: 90vh;"></div>
	</div>
</template>

<script>
	import * as echarts from 'echarts';
	import 'echarts-gl';
	import xianData from '../assets/xian.json';
	export default {
		mounted() {
			this.initMap();
		},
		methods: {
			initMap(name) {
				echarts.registerMap('xian', xianData); // 注册矢量地图数据
				let map = echarts.init(this.$refs.chinaMap);
				let option = {
					title: {
						text: '测试3D',
						textStyle: {
							color: '#000',
							fontSize: 18,
						},
					},
					geo3D: {
						map: 'xian',
						itemStyle: {
							color: '#abeee0',
							opacity: 1,
							borderWidth: 1,
							borderColor: '#ddd',
						},
						viewControl: {
							beta: 0, //x轴旋转
							rotateSensitivity: 0, // 无法旋转
							// panMouseButton:'left', // 平移
							// panSensitivity:1,
						},
						label: {
							show: false,
							formatter: (v) => v.name,
						},
						emphasis: {
							//当鼠标放上去  地区区域是否显示名称
							label: {
								show: true,
							},
						},
						light: {
							//光照阴影
							main: {
								color: '#fff', //光照颜色
								intensity: 1.2, //光照强度
								shadowQuality: 'high', //阴影亮度
								shadow: false, //是否显示阴影
								alpha: 55,
								beta: 10,
							},
							ambient: {
								intensity: 0.3,
							},
						},
					},
					series: [
						{
							name: 'bar3D',
							type: 'bar3D',
							coordinateSystem: 'geo3D',
							barSize: 1, //柱子粗细
							shading: 'lambert', // 三维柱状图中三维图形的着色效果。
							bevelSize: 0, // 柱子的倒角尺寸  支持设置为从 0 到 1 的值。默认为 0,即没有倒角。
							label: {
								show: true,
								formatter: (v) => v.value[2],
								distance: 0.5, // 文字到图的距离
								textStyle: {
									color: 'rgba(0,170,0,1)',
									fontSize: 14,
								}
							},
							itemStyle: {
								color: '#60ff0b',
								opacity: 1,
							},
							data: [{
									name: '新城区',
									value: [108.979903, 34.27927, 100],
								},
								{
									name: '碑林区',
									value: [108.946994, 34.251061, 400],
								},
								{
									name: '莲湖区',
									value: [108.903194, 34.2656, 100],
								},
								{
									name: '灞桥区',
									value: [109.077261, 34.287453, 100],
								},
								{
									name: '未央区',
									value: [108.926022, 34.34923, 300],
								},
								{
									name: '雁塔区',
									value: [108.926593, 34.213389, 200],
								},
								{
									name: '阎良区',
									value: [109.27802, 34.642141, 200],
								},
								{
									name: '临潼区',
									value: [109.283986, 34.442065, 200],
								},
								{
									name: '长安区',
									value: [108.961579, 34.01097, 300],
								},
								{
									name: '高陵区',
									value: [109.088896, 34.535065, 400],
								},
								{
									name: '鄠邑区',
									value: [108.607385, 34.008668, 200],
								},
								{
									name: '蓝田县',
									value: [109.357634, 34.106189, 200],
								},
								{
									name: '周至县',
									value: [108.186465, 34.001532, 100],
								},
								{
									name: '合计',
									value: [108.8, 33.999, 2800],
									itemStyle:{
										color:'#ffd100',
										opacity:0.5,
									},
									label: {
										show: true,
										formatter: (v) => v.value[2],
										distance: 0.5, // 文字到图的距离
										textStyle: {
											color: '#ff0000',
											fontSize: 18
										}
									},
								}
							],
						},
						{
							type: "lines3D",
							coordinateSystem: "geo3D", // 使用的坐标系
							// zlevel: 10, // 设置这个才会有轨迹线的小尾巴
							// polyline: false, // 是否是多段线
							blendMode: "lighter", // 该模式可以让数据集中的区域因为叠加而产生高亮的效果
							effect: { // 飞线的尾迹特效
								show: true,
								trailWidth: 3, // 尾迹的宽度
								trailLength: 0.1, // 尾迹的长度,范围从 0 到 1,为线条长度的百分比。特效尾迹长度[0,1]值越大,尾迹越长
								trailOpacity: 0.7, // 尾迹线条透明度
								trailColor: "#ff0000", // 尾迹的颜色,默认跟线条颜色相同
								constantSpeed: 5, // 轨迹特效的移动动画是否是固定速度,单位按三维空间的尺寸,设置为非 null 的值后会忽略 period 配置项。
								period: 8, // 尾迹特效的周期
								color: "#38bd98", // 移动点的颜色
							},
							lineStyle: {
								width: 1,
								color: 'rgba(62, 255, 49, 1)',
								opacity: 1
							},
							data: [
								[[108.979903, 34.27927],[108.8, 33.999]],
								[[108.946994, 34.251061],[108.8, 33.999]],
								[[108.903194, 34.2656],[108.8, 33.999]],
								[[109.077261, 34.287453],[108.8, 33.999]],
								[[108.926022, 34.34923],[108.8, 33.999]],
								[[108.926593, 34.213389],[108.8, 33.999]],
								[[109.27802, 34.642141],[108.8, 33.999]],
								[[109.283986, 34.442065],[108.8, 33.999]],
								[[108.961579, 34.01097],[108.8, 33.999]],
								[[109.088896, 34.535065],[108.8, 33.999]],
								[[108.607385, 34.008668],[108.8, 33.999]],
								[[109.357634, 34.106189],[108.8, 33.999]],
								[[108.186465, 34.001532],[108.8, 33.999]],
							],
						}
					],
				};
				map.setOption(option, true);
			},
		},
	};
</script>
</script>

<style scoped>
</style>

效果图: 

 西安市地图geoJson可以从这里获取:

DataV.GeoAtlas地理小工具系列

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: echarts3d地图线效果指的是通过使用echarts3d插件来实现地图上的线动画效果。echarts3d是一款基于JavaScript的可视化图表库,能够帮助用户轻松创建各种动态、交互性的图表。 要实现地图线效果,首先需要引入echarts3d插件,并加载相关的地图数据。然后,在echarts3d提供的配置中,设置多个起点和终点坐标,根据坐标信息绘制出对应的连线。 接下来,可以通过设置图表的样式和动画效果来实现线的效果。可以设置连线的颜色、粗细,以及起点和终点的标记形状和颜色等。为了实现动画效果,可以设置连线的透明度、延迟和持续时间等属性,使连线在地图上呈现出移动的效果。 此外,可以通过设置图表的交互功能,使用户可以通过鼠标移动和缩放来浏览地图,并与线进行交互。通过添加鼠标事件和回调函数,可以实现鼠标悬停时的高亮效果,点击时的弹出信息窗口等交互操作。 总之,echarts3d地图线效果通过使用echarts3d插件,绘制地图和连线,并通过配置样式和动画效果,以及添加交互功能来实现。这种线效果可以使地图更加生动和有趣,帮助用户更好地理解和分析地理数据。 ### 回答2: Echarts3D地图线效果是Echarts库中的一种可视化效果,可以展示地理关系的动态连接。该效果利用地理坐标,将各个地点通过曲线线的方式连接起来,形成动态的数据流动效果。 要实现Echarts3D地图线效果,首先需要准备好数据,包括地点的经纬度和数据的数值。然后在Echarts图表中添加地理坐标系,配置好相关参数,并引入Echarts3D插件。 通过设置地图的初始视角、地点的标记和数值,以及曲线的配置,可以使得地图上的数据点按照指定的路径线连接。你可以设置曲线的颜色、粗细、动画效果等参数,以使得线效果更加醒目动态。 此外,你还可以通过配置相关参数,使得线的路径和数值能够适应不同的数据需求,例如配置线条的颜色渐变、设置曲线的弯曲度、更改线的速度等等。这些配置参数都可以根据你的实际需求进行调整。 总之,Echarts3D地图线效果提供了一种直观而动态的数据展示方式,帮助我们更好地理解地理关系和数据之间的联系。通过合理配置参数和数据,我们可以创造出各种各样的地图线效果,将数据可视化呈现,提升数据分析和展示的效果。 ### 回答3: ECharts 是一款基于JavaScript的可视化库,提供了丰富的图表类型以及交互功能。其中 ECharts 3D 地图线效果是该库的一个独特的功能,可以用于展示地理数据之间的关联关系。 ECharts 3D 地图线效果主要包括两个部分:折线地图线动画。首先,我们可以使用 ECharts地图类型(如 scatter3D 或 lines3D)来绘制一个折线地图,将地理数据可视化展现出来。通过设置相应的经纬度坐标以及其他数据属性,可以在地图上绘制出各个地点的标记点。 接下来,通过配置线动画的特效参数,可以实现地理数据之间的线效果。通过定义起点和终点的经纬度坐标,以及线的属性(如颜色、宽度、透明度等),ECharts 可以自动生成一条线路径,并在地图上进行动画展示。 在线动画中,可以通过设置行时间、延迟等参数来控制效果的展示和流畅度。此外,可以通过配置文本标签等样式属性,将线上的数据信息以文字形式展示出来,增强了地理数据之间的可视化效果和交互性。 综上所述,ECharts 3D 地图线效果通过折线地图线动画的结合,能够直观地展示地理数据之间的关联关系。用户可以通过设置经纬度、属性参数以及动画特效等自定义地理数据的可视化呈现方式,从而实现丰富多样的数据展示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只大菜鸟J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值