使用echarts生成漂亮的3D地图
使用echarts生成漂亮的3D地图
echarts是非常好用的图表插件,本文使用echarts来生成一个漂亮的3D地图
效果
准备资料
- 第三方插件
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"</script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=#####DASDCADVA"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
- 背景图片
创建过程
- html
<div class="box" style="height: 100%;width: 100%">
<div id="container" style="height: 100%"></div>
</div>
- css
.box{
background:url('bg.png');
background-size:cover;
}
- javascript
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {}, option = null;
myChart.setOption({
backgroundColor: 'rgba(0,0,0,0)',//canvas的背景颜色
environment: './bg.png',//背景星空图
geo3D: { //地图的具体参数
map: 'world', //地图范围
shading: 'lambert', //光照带来的明暗
light: { // 光照相关的设置。在 shading 为 'color' 的时候无效。
main: { //场景主光源的设置
intensity: 5,//主光源的强度
shadow: true,//主光源是否投射阴影
shadowQuality: 'high',//阴影的质量
alpha: 30, //主光源绕 x 轴偏离的角度
beta:190 //主光源绕 y 轴偏离的角度
},
ambient: { //全局的环境光设置。
intensity: 0//环境光的强度
}
},
viewControl: {//用于鼠标的旋转,缩放等视角控制
distance: 50,//默认视角距离主体的距离
panMouseButton: 'left',//平移操作使用的鼠标按键
rotateMouseButton: 'right',//旋转操作使用的鼠标按键
alpha:50 // 让canvas在x轴有一定的倾斜角度
},
postEffect: {//为画面添加高光,景深,环境光遮蔽(SSAO),调色等效果
enable: true, //是否开启
SSAO: {//环境光遮蔽
radius: 1,//环境光遮蔽的采样半径。半径越大效果越自然
intensity: 1,//环境光遮蔽的强度
enable: true
}
},
temporalSuperSampling: {//分帧超采样。在开启 postEffect 后,WebGL 默认的 MSAA 会无法使用,分帧超采样用来解决锯齿的问题
enable: true
},
itemStyle: {//三维图形的视觉属性
color:'#2355ac',
borderWidth:1,
borderColor:'#000'
},
regionHeight: 2//区域的高度
}
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具