Echart介绍它就是一个商业级数据图表,一个纯JavaScript的图标库。 可以兼容绝大部分的浏览器,可以为前端开发提供一个直观、生动、可交互、可高度个性化定制的数据可视化图表。 echart能实现大部分的数据表样式,并且还有3d图标功能。
ThingJS 是物联网可视化开发平台,帮助物联网开发商轻松集成 3D 可视化界面。ThingJS 基于 HTML5 和 WebGL 技术,可以在ThingJS场景中引入ECharts图表。 下面通过Echars图表展现园区内停车场与车辆的信息,主要包含了当前的车位状态、当前车牌号归属地信息、车辆类型信息,以及车辆进出统计等信息。下边我们就看一下图表是如何嵌入ThingJS,并且实现交互的。
ECharts嵌入ThingJS步骤第一步 需要引入ECharts文件。 第二步 创建背景块和图表块,并且设置两个块的样式。 第三步 基于图表块初始化Echarts。 第四步 将图表块放入背景块,背景块放入总dom中,这样Echarts就成功嵌入到ThingJS中了。 下面来看看代码: - var ctx = document.getElementById('myChart');
- var myChart = new Chart(ctx, {
- type: 'pie',
- data: {
- labels: ['叉车', '轿车', '警车', '皮卡'],
- datasets: [{
- label: '# of Votes',
- data: [11964, 18799, 51966, 35876],
- backgroundColor: [
- 'rgba(255, 99, 132, 0.9)',
- 'rgba(54, 162, 235, 0.9)',
- 'rgba(255, 206, 86, 0.9)',
- 'rgba(75, 192, 192, 0.9)',
- ],
- borderColor: [
- 'rgba(255, 99, 132, 1)',
- 'rgba(54, 162, 235, 1)',
- 'rgba(255, 206, 86, 1)',
- 'rgba(75, 192, 192, 1)',
- ],
- borderWidth: 1
- }]
- },
- options: {
- title: { //标题
- display: true,
- text: '车辆销售额饼图',
- fontColor: "#00f",
- },
- scales: {
- yAxes: [{
- ticks: {
- beginAtZero: true
- }
- }]
- },
- }
- });
复制代码效果如下: 除了实现普通的图标效果外,还需要3D场景能和图表交互 下面来看下ECharts中的事件机制。在初始化图表时,就可以给图表添加事件。当事件触发时,ThingJS可以接收当前事件操作的参数从而控制场景中对应的物体变化。 下边以车位的占用情况为例来编写代码。 - var bottomCharts = window.echarts.init(bottomDom);// echarts 初始化
- bottomCharts.setOption(option);
- bottomCharts.on('click', function (params) {
- cancelOutline();
- reset();
- clearUiAnchorArr();
- if(params.name == "空置车位"){
- for(var i = 0; i < app.query("空置车位").length; i++){
- app.query("空置车位")[i].style.outlineColor = "#00ff00"
- }
- }else if(params.name == "占用车位"){
- for(var i = 0; i < app.query("占用车位").length; i++){
- app.query("占用车位")[i].style.outlineColor = "#ff0000"
- }
- }
- })
复制代码当点击车某一区域车牌信息时,ThingJS可以根据物体属性选出对应的车辆,并将车牌号通过顶牌的方式显示出来,下面是查看停车场河北车牌信息的情况。 最终效果如下:
|