DataGear 使用坐标映射表制作地理坐标数据可视化看板

DataGear 的数据集结构是由数据集属性表示的,数据集属性并不要求与实际的数据结构一致,可以自由新增、编辑、删除。利用这一特性,可以为数据集添加占位属性(没有对应实际数据),然后在看板展示其关联的图表时,通过dg-chart-listener的onUpdate函数补全数据,从而实现数据扩展功能。

本文以地图飞线图为例,介绍如何利用上述特性,为仅包含地区名称信息的数据集,制作数据可视化看板。

假设有如下地区名称数据集:

名称:

源点地区名/终点地区名

数据:

源点地区名, 终点地区名
新疆,      北京
四川,      北京
广东,      北京
浙江,      北京

执行预览后,它的属性列表为:

名称        类型
源点地区名   字符串
终点地区名   字符串

地图飞线图需要数据集具有如下属性:源点经度、源点纬度、终点经度、终点纬度,因此,这里为上述数据集手动添加这四个占位属性:

名称           类型
源点地区名      字符串
终点地区名      字符串
源地区经度      数值
源地区纬度      数值
终地区经度      数值
终地区纬度      数值

然后,新建地图飞线图,如下所示:

名称:地图飞线图
图表类型:地图飞线图
数据集:
源地区经度  ->  源点经度
源地区纬度  ->  源点纬度
终地区经度  ->  终点经度
终地区纬度  ->  终点纬度

此时展示图表将是空白飞线图,因为并没有实际的地理坐标数据。

然后,新建看板,添加上述图表,为其添加dg-chart-listener图表监听器,并通过它的onUpdate函数补全地理坐标数据,如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.chart{
  display: inline-block;
  width: 100%;
  height: 500px;
}
</style>
<script>
//地区名->地理坐标映射表
var coordMap=
{
  "新疆": [85.523256,41.094106],
  "四川": [103.037483,30.450264],
  "广东": [113.560737,23.669933],
  "浙江": [119.962996,29.037435],
  "北京": [116.651482,40.253657],
};
var chartListener=
{
  onUpdate: function(chart, results)
  {
    var result = chart.resultFirst(results);
    var datas = chart.resultDatas(result);
    
    for(var i=0; i<datas.length; i++)
    {
      var di = datas[i];
      
      var srcCoord = (coordMap[di['源点地区名']] || {});
      var targetCoord = (coordMap[di['终点地区名']] || {});
      
      di['源地区经度'] = srcCoord[0];
      di['源地区纬度'] = srcCoord[1];
      di['终地区经度'] = targetCoord[0];
      di['终地区纬度'] = targetCoord[1];
    }
    
    chart.resultData(result, datas);
  }
};
</script>
</head>
<body>
<div class="chart" dg-chart-listener="chartListener"
      dg-chart-widget="上述图表ID"></div>
</body>
</html>

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

效果图如下所示:

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

源码地址:

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DataGear是一款数据分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图管理、看管理等。 系统特点: 1、可管理数据库驱动 可通过驱动程序管理功能添加数据库驱动程序,无需重启,即可支持连接新数据库; 2、多种格式的数据集 支持SQL、CSV、Excel、HTTP接口、JSON等多种格式的数据集; 3、多数据集聚合图 一个图可添加多个不同格式的数据集,将它们聚合展示; 4、插件式图类型 每一种类型的图都以图插件形式提供,并内置了大量图插件,管理员也可上传自定义图插件,丰富系统图类型; 5、可自由编辑的HTML看使用原生的HTML网页作为模,可自由编辑、绑定、异步加载图,并支持将任意HTML网页导入为看; 6、丰富的看API 看页面内置了大量的页面端API,可用于个性扩展看功能。 模块介绍: 1、datagear-analysis 数据分析底层模块,定义数据集、图、看API 2、datagear-connection 数据库连接支持模块,定义可从指定目录加载JDBC驱动、新建连接的API 3、datagear-dataexchange 数据导入/导出底层模块,定义导入/导出指定数据数据的API 4、datagear-management 系统业务服务模块,定义数据源、数据分析等功能的服务层API 5、datagear-meta 数据源元信息底层模块,定义解析指定数据结构的API 6、datagear-persistence 数据数据管理底层模块,定义读取、编辑、查询数据数据的API 7、datagear-util 系统常用工具集模块 8、datagear-web 系统业务web模块,定义web控制器、操作页面 9、datagear-webapp 系统Web应用程序组织模块,定义将系统构建为标准WAR程序包的结构 10、datagear-webappembd 系统独立应用程序组织模块,定义将系统构建为独立可执行程序的结构 依赖: Java 8+ Servlet 3.0+ 编译: (执行单元测试编译,需要预先配置单元测试环境) mvn clean package (不执行单元测试编译,无需预先配置单元测试环境) mvn clean package -DskipTests 运行: cd datagear-webappembd/target/datagear-[version] (Linux环境) ./startup.sh (windows环境) startup.bat 调试: 1、将datagear以maven工程导入至IDE工具; 2、将datagear-webapp作为Web应用添加至servlet容器(比如Tomcat); 3、以调试模式运行Servlet容器。 调试注意: 在调试开发分支前(dev-*),建议先备份DataGear工作目录([用户主目录]/.datagear), 因为开发分支程序启动时会修改DataGear工作目录,可能会导致先前使用的正式版程序、以及后续发布的正式版程序无法正常启动。 调试时,系统仅会在第一次启动时升级内置数据库(Derby),如果遇到内置数据库访问异常,需要查看 datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql 文件,从中查找需要更新的SQL语句,手动更新至内置数据库。 系统自带了一个可用于为内置数据库执行SQL语句的简单工具类org.datagear.web.util.DerbySqlClient,可以在IDE中直接运行。注意:运行前需要先停止DataGear程序。 DataGear数据分析平台 更新日志: v2.9.0 重构内置格图配置项,支持细粒度配置格样式

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值