使用Echarts实现地图3D效果

1.安装echarts

2.获取坐标数据

可以在该网站中选择对应的城市,获取json数据

3.引入坐标json数据,初始化echarts并注册地图

<div id="main" style="width: 600px; height: 500px;"></div>
import jiangsu from "./jiangsu.json" // 引入地图json数据
import echarts from "echarts"
export default {
  name: "app",
  data(){
	  return {}
  },
  mounted(){
	  let chart = echarts.init(document.getElementById('main')); // 初始化echarts
	  echarts.registerMap('JS',jiangsu); // 注册地图
  }
}

3. 使用geo属性生成地图

data(){
	  return {
		  option:{
			  geo:[
				  {
					map:'JS',
					label:{
						show:true,
						color: '#eee'
					},
					itemStyle:{
						color:'#2075B8', // 背景
						borderWidth:'1', // 边框宽度
						borderColor:'#fff', // 边框颜色
					}
				  }				  
			  ]
		  }
	  }
  },
  mounted(){
	  let chart = echarts.init(document.getElementById('main'));
	  echarts.registerMap('JS',jiangsu);
	  chart.setOption(this.option)
  }

至此,一个简单的地图生成 ,效果如下:

 

 4.使用geo的top和zlevel属性来实现地图的堆叠效果

*geo属性可以是一个数组,构建多个相同的map,根据实际效果调整top值来实现堆叠效果,zlevel值越大,图层则越往上

data() {
			return {
				option: {
					geo: [{
							map: 'JS',
							zlevel:5,
							label: {
								show: true,
								color: '#eee'
							},
							itemStyle: {
								color: '#2075B8', // 背景
								borderWidth: '1', // 边框宽度
								borderColor: '#fff', // 边框颜色
							}
						},
						{
							map: 'JS',
							top:'11%',
							zlevel:4,
							itemStyle: {
								color: '#3C5FA1', // 背景
								borderWidth: '1', // 边框宽度
								borderColor: '#3C5FA1', // 边框颜色
							}
						},
						{
							map: 'JS',
							top:'12%',
							zlevel:3,
							itemStyle: {
								color: '#163F6C', // 背景
								borderWidth: '1', // 边框宽度
								borderColor: '#163F6C', // 边框颜色
							}
						},
						{
							map: 'JS',
							top:'13%',
							zlevel:2,
							itemStyle: {
								color: '#31A0E6', // 背景
								borderWidth: '1', // 边框宽度
								borderColor: '#31A0E6', // 边框颜色
								shadowColor: '#fff',  // 外部阴影 
								shadowBlur:'10'
							}
						}
					]
				}
			}
		}

 效果如下:

 

 

  • 11
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
使用 echarts 实现 3D 地图加热力图效果,可以按照以下步骤进行: 1. 准备地图数据:需要准备一个包含地理信息的数据集,比如 GeoJSON 格式的数据,用来绘制地图。 2. 准备热力数据:需要准备一个包含每个地理位置的热力值的数据集,可以是一个数组,也可以是一个对象数组。 3. 配置 echarts 的 option:需要在 option 中配置地图类型、地图数据、热力数据、热力图颜色等相关信息。 4. 渲染 echarts 图表:将配置好的 option 传入 echarts 实例的 setOption 方法中,即可渲染出 3D 地图加热力图效果。 以下是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>3D 地图加热力图效果</title> <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.0/dist/echarts.min.js"></script> </head> <body> <div id="map" style="width: 800px; height: 600px;"></div> <script> // 准备地图数据 var geoCoordMap = { "北京": [116.46, 39.92], "上海": [121.48, 31.22], "广州": [113.23, 23.16], "深圳": [114.07, 22.62], "成都": [104.06, 30.67], // 其他城市... }; var geoData = Object.keys(geoCoordMap).map(function (name) { return { name: name, value: geoCoordMap[name].concat(Math.random() * 100) } }); // 准备热力数据 var heatData = geoData.map(function (item) { return { name: item.name, value: item.value[2] } }); // 配置 echarts 的 option var option = { tooltip: {}, geo3D: { map: 'china', roam: true, itemStyle: { areaColor: '#1B1B1B', borderColor: '#404a59' }, light: { main: { intensity: 1, shadow: true }, ambient: { intensity: 0.3 } } }, series: [{ type: 'scatter3D', coordinateSystem: 'geo3D', symbolSize: 10, label: { show: false }, itemStyle: { color: '#ddb926' }, data: geoData }, { type: 'heatmap', coordinateSystem: 'geo3D', data: heatData, itemStyle: { color: 'red' } }] }; // 渲染 echarts 图表 var chart = echarts.init(document.getElementById('map')); chart.setOption(option); </script> </body> </html> ``` 需要注意的是,这里使用的是 echarts 5.x 版本,其中的 geo3D 组件是 3D 地图组件,heatmap 组件是热力图组件。在配置 option 时,需要将它们分别配置好,并指定 coordinateSystem 为 geo3D

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值