DataGear 制作支持全国、省、市三级数据钻取效果的地图数据可视化看板

Stella981
• 阅读 1079

通过DataGear的参数化数据集、图表联动和看板API功能,可以很方便地制作支持数据钻取效果的数据可视化看板。

首先,以上级地区名为参数,新建一个参数化SQL数据集:

SELECT
    COL_NAME,              --地区名
    COL_VALUE,             --地区指标数值
    COL_PARENT AS COL_MAP  --上级地区名,同时作为地图名
FROM
    T_ANALYSIS
WHERE
<#if 上级地区名??>
    COL_PARENT = '${上级地区名}'
<#else>
    COL_PARENT = '中国'
</#if>

参数:

名称        类型       必填
上级地区名  字符串     否

T_ANALYSIS表数据示例:

COL_NAME         COL_VALUE         COL_PARENT
山东             160               中国
北京             200               中国
...
朝阳区           195               北京
海淀区           200               北京
...
青岛市           10                山东
济南市           160               山东
...
历下区           50                济南市
市中区           78                济南市
历城区           150               济南市
...

然后,新建一个使用上述数据集的地图图表:

图表类型:基本地图
数据集列标记:
COL_NAME:地区名称 (name)
COL_VALUE:指标数值 (value)
COL_MAP:地图名 (map) 

然后,新建可视化看板,填写如下看板模板内容:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.dg-chart{
  display: inline-block;
  width: 100%;
  height: 480px;
}
</style>
<script type="text/javascript">
var paramHistory = [];
var chartListener =
{
    onUpdate: function(chart, results)
    {
        //存储当前上级地区名,用于支持返回操作
        var paramVal = chart.dataSetParamValue(0, 0);
        if(!paramVal)
            paramHistory = [];
        else
            paramHistory.push(paramVal);
        
        $("#title").html((paramVal ? paramVal : "全国") + " - 数据");
    }
};
$(document).ready(function()
{
    $("#backButton").click(function()
    {
        //获取上一次操作的上级地区名,设置为图表参数,然后刷新图表
        paramHistory.pop();
        var paramVal = (paramHistory.pop() || null);
        var chart = dashboard.getChart("chart1");
        chart.dataSetParamValue(0,0, paramVal);
        chart.refreshData();
    });
});
</script>
</head>
<body class="dg-dashboard" dg-chart-map-urls="{'济南市':'jinan.json'}">
    <div style="position: absolute;left:1;top:1;font-size:12px;">
    DataGear <br>
    http://www.datagear.tech
</div>
<div style="font-size:2em;text-align:center;margin-bottom:5px;">DataGear 看板示例</div>
<p> </p>
<div style="position:relative">
    <div id="title" style="text-align:center;font-size:1.2em;font-weight:bold;"></div>
    <button id="backButton" style="position:absolute;right:2em;top:0;">返回</button>
</div>
<div id="chart1" class="dg-chart"
    dg-chart-options="{title:{show:false}}"
    dg-chart-link="{target:'chart1',data:{name:0}}"
    dg-chart-listener="chartListener"
    dg-chart-disable-setting="true"
    dg-chart-widget="3fa7ecaf11742397c58b">
</div>
</body>
</html>

点击[保存并展示]按钮,打开看板展示页面,完成!!!

注:上述示例中使用了没有内置的济南市地图JSON文件(jinan.json),需要通过看板编辑页面添加看板资源功能添加至看板。

效果图如下所示:

DataGear 制作支持全国、省、市三级数据钻取效果的地图数据可视化看板

官网地址:http://www.datagear.tech

源码地址:

Gitee:https://gitee.com/datagear/datagear

Github:https://github.com/datageartech/datagear

大屏模板地址:https://gitee.com/datagear/DataGearDashboardTemplate

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
DataGear 制作时序数据可视化看板
通过DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fdatagear.tech%2F)的参数化数据集和看板API功能,可以很方便地制作包含时序图表的看板。首先,以时间为参数,新建一个参数化SQL数据集:SELECTCOL_TIME,
Stella981 Stella981
3年前
DataGear 2.2.0 发布,数据可视化分析平台
DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.datagear.tech%2F) 2.2.0 发布,带来诸多新增功能,具体更新内容如下:新增:内置图表新增水球图;新增:看板编辑页面新增搜索功能;新增:图表/看板展示页面新增数据透视
Stella981 Stella981
3年前
DataGear 制作支持表单交互操作和多图表联动的数据可视化看板
对于数据可视化,有时需要根据用户输入的查询条件展示限定范围的数据图表,DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.datagear.tech)的看板表单功能可以快速方便地实现此类需求。下面的看板示例,包含一个柱状图、一个饼图和一个地图,用户可以通过看板表单
Stella981 Stella981
3年前
DataGear 制作按行滚动的轮播表格数据可视化看板
通过DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fdatagear.tech%2F)的表格图表轮播设置项(1.13.0版本新增),可以轻松制作按行滚动的轮播表格数据可视化看板。首先,新建表格所需的数据集,以如下CSV数据集为例:name,v
Stella981 Stella981
3年前
DataGear 轻松制作支持图表联动的全国地图、省级地图数据可视化看板
DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.datagear.tech)看板的图表联动功能,使您可以轻松制作支持图表联动的全国地图、省级地图数据可视化看板。首先,新建两个数据集。第一个是各省指标数据集,将用于绘制全国指标图表,它的SQL语句如下
Stella981 Stella981
3年前
DataGear 制作联动异步加载图表的数据可视化看板
通过DataGear(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fdatagear.tech%2F)的参数化数据集、图表事件处理和看板API功能,可以很方便地制作联动异步加载图表的数据可视化看板。首先,新建一个参数化SQL数据集,如下所示:SELECTCO