使用echarts生成漂亮的3D地图

使用echarts生成漂亮的3D地图

echarts是非常好用的图表插件,本文使用echarts来生成一个漂亮的3D地图

效果

echarts地图

准备资料

  • 第三方插件
<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//区域的高度
        }
    });
  • 8
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
要实现echarts3D地图效果,可以使用geo属性来生成地图。首先,需要引入坐标json数据并注册地图。可以在mounted钩子函数中使用echarts.init方法初始化echarts,并使用echarts.registerMap方法注册地图。然后,在data选项中定义option对象,通过geo属性来配置地图的样式和堆叠效果。可以根据实际效果调整top值来实现堆叠效果,zlevel值越大,图层则越往上。可以定义多个geo属性来构建多个相同的地图,每个地图可以设置不同的样式。可以通过itemStyle属性来设置地图的背景颜色、边框颜色等。最后,使用chart.setOption方法将option配置应用于echarts实例,即可实现echarts3D地图效果。 示例代码如下: ```javascript import jiangsu from "./jiangsu.json" // 引入地图json数据 import echarts from "echarts" export default { name: "app", data() { return { option: { geo: [ { map: 'JS', 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' // 外部阴影模糊度 } } ] } } }, mounted() { let chart = echarts.init(document.getElementById('main')); echarts.registerMap('JS', jiangsu); chart.setOption(this.option); } } ``` 通过以上代码可以实现echarts3D地图效果。在echarts的geo属性中配置不同的图层样式和堆叠效果,可以实现更加丰富的地图效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用Echarts实现地图3D效果](https://blog.csdn.net/m0_61644055/article/details/124194601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值