cesium加载Echarts饼图

注意 注意 注意,本文全是干货,没有多余的废话,直接进入主题

把一个Echarts饼图添加到cesium地球上只要四步

  • 一、创建 canvas
  • 二、渲染 Echarts 图表
  • 三、创建 Primitive
  • 四、将 canvas 作为材质贴到 Primitive上

直接上代码,完整代码在文末

 

javascript

代码解读

复制代码

import * as Cesium from "cesium"; import * as echarts from "echarts" const pieOption = { ... 想要啥样的自己定样式 } const drawPie = (options, { radius = 100000.0, lon, lat }) => { let canvasDom = document.createElement('canvas'); canvasDom.width = 400; canvasDom.height = 400; let myChart = echarts.init(canvasDom); myChart.setOption(options); myChart.on('finished', () => { let criclePrimitive = getCriclePrimitive(myChart, { radius, lon, lat }) viewer.scene.primitives.add(criclePrimitive) myChart.dispose(); myChart = null; canvasDom = null; }) } const getCriclePrimitive = (chart, { radius = 100000.0, lon, lat }) => { let circle = new Cesium.CircleGeometry({ center: Cesium.Cartesian3.fromDegrees(lon, lat), radius: radius }); let circleGeometry = Cesium.CircleGeometry.createGeometry(circle); let circleGeometryInstance = new Cesium.GeometryInstance({ geometry: circleGeometry, attributes: { color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.ORANGE) } }); let criclePrimitive = new Cesium.Primitive({ geometryInstances: [ circleGeometryInstance ], asynchronous: false, appearance: new Cesium.MaterialAppearance({ material: new Cesium.Material({ fabric: { type: 'Image', uniforms: { image: chart.getDataURL() } } }) }) }) return criclePrimitive; } drawPie(pieOption, { lon: 116, lat: 39 })

函数 drawPie 的功能
  1. 创建 Canvas 元素

    • 使用 document.createElement('canvas') 创建一个 Canvas 元素。
    • 设置 Canvas 宽高为 400 像素。
  2. 初始化 ECharts 图表

    • 使用 echarts.init(canvasDom) 初始化 ECharts 图表实例。
    • 调用 myChart.setOption(options) 设置图表配置项。
  3. 监听图表渲染完成事件

    • 监听 finished 事件,在图表渲染完成后执行回调函数。
  4. 获取圆形几何体并添加到 Cesium 场景

    • 在回调函数中调用 getCriclePrimitive 函数,传入图表实例和参数 { radius, lon, lat }
    • 获取圆形几何体 criclePrimitive
    • 将圆形几何体添加到 Cesium 场景中:viewer.scene.primitives.add(criclePrimitive)
  5. 清理资源

    • 调用 myChart.dispose() 销毁 ECharts 实例。
    • 将 myChart 和 canvasDom 设置为 null 以释放内存。
函数 getCriclePrimitive 的功能
  1. 创建圆形几何体

    • 使用 Cesium.CircleGeometry 创建一个圆形几何体,指定中心点坐标和半径。
  2. 生成几何体实例

    • 调用 Cesium.CircleGeometry.createGeometry(circle) 生成几何体实例。
    • 创建 GeometryInstance,设置颜色属性为橙色。
  3. 创建 Primitive 实例

    • 创建 Cesium.Primitive 实例,指定几何体实例和材质外观。
    • 设置材质类型为 Image,并将 ECharts 图表的截图作为纹理。
  4. 返回圆形几何体

    • 返回创建好的 criclePrimitive 对象。

存在问题:

这只是一种比较取巧的办法,这样加载的方式失去了Echarts的灵魂,没有任何交互可言,只是加载了图片,如果大神们有好的想法和方案欢迎一起交流和学习。


源码仓库

完整源码和使用案例 请看这里,里面还有其他一些我写案例东西,可以的话请给个star

原文链接:https://juejin.cn/post/7418485657554993167

### 回答1: Cesium Popup Echarts是一种结合了CesiumEcharts两个开源库的工具,可以在三维地球上展示各种统计数据和图表。 Cesium是一个用于创建3D地球可视化的JavaScript库,可以在浏览器中呈现高度逼真的地球模型,并支持地理信息系统(GIS)数据的展示和交互。Cesium具有强大的地理空间分析和渲染功能,可以用于创建虚拟地球、航空航天路径模拟、城市规划等应用。 而Echarts是一个用于创建交互式图表和数据可视化的JavaScript库,可以在浏览器中绘制各种类型的图表,如饼图、柱状图、折线图等,并支持丰富的数据展示和交互功能。Echarts有着强大的数据可视化能力,可以帮助用户更好地理解数据和趋势。 Cesium Popup Echarts的核心功能就是在Cesium地球上弹出Echarts图表,通过交互操作可以实时切换数据展示,提供更直观、更具有吸引力的数据分析和可视化效果。用户可以在Cesium地球上点击特定位置,弹出Echarts图表展示该地点的相关数据,比如某个地区的温度、人口密度、经济增长率等。 使用Cesium Popup Echarts,不仅可以将地理信息数据可视化,还可以将具体的统计数据以图表的形式展示在地球上,通过与地理位置的结合,更加直观地呈现出数据的空间分布和趋势。这对于航空航天、城市规划、灾害防控和资源管理等领域都具有重要意义,能够帮助用户更好地了解和分析数据,做出更好的决策。 ### 回答2: Cesium Popup Echarts是一种在Cesium地理可视化引擎上集成Echarts图表库的解决方案。Cesium是一款基于WebGL的地理可视化引擎,可以实现高性能的三维地球展示和数据可视化。而Echarts是一款基于JavaScript的数据可视化库,提供了丰富的图表类型和强大的可定制性。 通过将CesiumEcharts的功能结合起来,可以在Cesium地球上展示各种类型的图表,例如柱状图、折线图、饼图等。这样可以将地理信息和数据可视化相结合,为用户提供更加全面和直观的地理数据展示方式。 使用Cesium Popup Echarts可以实现图表的弹出式展示。当用户点击地球上的某个特定位置或区域时,可以弹出一个窗口,展示相关的图表数据。这样用户就可以通过交互的方式深入了解具体地理位置的数据情况,增强对地理数据的理解和分析能力。 Cesium Popup Echarts的实现步骤大致为:首先,使用Cesium创建一个地球场景,并添加相关的地理数据。然后,在指定的位置上监听鼠标点击事件,当触发事件时,获取点击位置的经纬度坐标。接着,使用Echarts创建相应类型的图表,并将图表数据填充进去。最后,将生成的图表嵌入到弹出窗口中,并将窗口添加到Cesium场景中。 总的来说,Cesium Popup Echarts可以使地理数据的可视化更加直观和易于理解。通过图表的弹出展示,用户可以更深入地了解和分析地理数据,为各类地理研究和决策提供有效的支持。 ### 回答3: cesium-popup-echarts是一种将ECharts图表与Cesium地球可视化引擎相结合的工具。Cesium是一个用于创建3D地球图形的开源JavaScript库,而ECharts是一个用于创建各种图表的流行JavaScript图表库。cesium-popup-echarts的目的是在Cesium地球上展示ECharts图表。 使用cesium-popup-echarts可以实现在Cesium地球上的任意位置弹出ECharts图表。这样,我们可以将数据可视化在Cesium地球上,从而更好地理解和分析地理数据。用户可以通过点击特定地点或者通过其他交互手段触发图表的弹出。弹出的图表可以是柱状图、折线图、饼图等等,可以根据具体需要进行配置和定制。 cesium-popup-echarts的使用步骤相对简单。首先,需要引入CesiumECharts的相关库文件。接下来,我们需要创建一个Cesium场景和ECharts图表实例。然后,通过监听Cesium场景的交互事件,在特定位置弹出ECharts图表。最后,可以根据需要进行图表的样式和数据配置。 使用cesium-popup-echarts可以帮助用户更好地展示和分析地理数据,并使得数据可视化更加直观和灵活。该工具的应用场景广泛,可以用于地理信息系统、气象可视化、地质勘探等领域。通过与Cesium地球的结合,cesium-popup-echarts为地图数据的可视化提供了全新的方式和视角。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值