通过DataGear的参数化数据集、图表联动和看板API功能,可以很方便地制作支持数据钻取效果的数据可视化看板。
首先,以上级地区名为参数,新建一个参数化SQL数据集:
1SELECT 2 COL_NAME, --地区名 3 COL_VALUE, --地区指标数值 4 COL_PARENT AS COL_MAP --上级地区名,同时作为地图名 5FROM 6 T_ANALYSIS 7WHERE 8<#if 上级地区名??> 9 COL_PARENT = '${上级地区名}' 10<#else> 11 COL_PARENT = '中国' 12</#if>
参数:
1名称 类型 必填 2上级地区名 字符串 否
T_ANALYSIS表数据示例:
1COL_NAME COL_VALUE COL_PARENT 2山东 160 中国 3北京 200 中国 4... 5朝阳区 195 北京 6海淀区 200 北京 7... 8青岛市 10 山东 9济南市 160 山东 10... 11历下区 50 济南市 12市中区 78 济南市 13历城区 150 济南市 14...
然后,新建一个使用上述数据集的地图图表:
1图表类型:基本地图 2数据集列标记: 3COL_NAME:地区名称 (name) 4COL_VALUE:指标数值 (value) 5COL_MAP:地图名 (map)
然后,新建可视化看板,填写如下看板模板内容:
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title></title> 6<style type="text/css"> 7.dg-chart{ 8 display: inline-block; 9 width: 100%; 10 height: 480px; 11} 12</style> 13<script type="text/javascript"> 14var paramHistory = []; 15var chartListener = 16{ 17 onUpdate: function(chart, results) 18 { 19 //存储当前上级地区名,用于支持返回操作 20 var paramVal = chart.dataSetParamValue(0, 0); 21 if(!paramVal) 22 paramHistory = []; 23 else 24 paramHistory.push(paramVal); 25 26 $("#title").html((paramVal ? paramVal : "全国") + " - 数据"); 27 } 28}; 29$(document).ready(function() 30{ 31 $("#backButton").click(function() 32 { 33 //获取上一次操作的上级地区名,设置为图表参数,然后刷新图表 34 paramHistory.pop(); 35 var paramVal = (paramHistory.pop() || null); 36 var chart = dashboard.getChart("chart1"); 37 chart.dataSetParamValue(0,0, paramVal); 38 chart.refreshData(); 39 }); 40}); 41</script> 42</head> 43<body class="dg-dashboard" dg-chart-map-urls="{'济南市':'jinan.json'}"> 44 <div style="position: absolute;left:1;top:1;font-size:12px;"> 45 DataGear <br> 46 http://www.datagear.tech 47</div> 48<div style="font-size:2em;text-align:center;margin-bottom:5px;">DataGear 看板示例</div> 49<p> </p> 50<div style="position:relative"> 51 <div id="title" style="text-align:center;font-size:1.2em;font-weight:bold;"></div> 52 <button id="backButton" style="position:absolute;right:2em;top:0;">返回</button> 53</div> 54<div id="chart1" class="dg-chart" 55 dg-chart-options="{title:{show:false}}" 56 dg-chart-link="{target:'chart1',data:{name:0}}" 57 dg-chart-listener="chartListener" 58 dg-chart-disable-setting="true" 59 dg-chart-widget="3fa7ecaf11742397c58b"> 60</div> 61</body> 62</html>
点击[保存并展示]按钮,打开看板展示页面,完成!!!
注:上述示例中使用了没有内置的济南市地图JSON文件(jinan.json),需要通过看板编辑页面添加看板资源功能添加至看板。
效果图如下所示:

源码地址:
Gitee:https://gitee.com/datagear/datagear