揭秘:网上那些好看的地图图表是怎么做的?

发布于:2022-10-21 ⋅ 阅读:(457) ⋅ 点赞:(0)

关键词:地图图表、数据可视化、数据地图

1. 概述

某些情况下地图数据轮播时需要将省份高亮展示,并且可以联动其他图表达到拓宽地图数据展示维度的目的,如下图所示:

2.具体实现

2.1 准备数据

新建决策报表,新建两个数据库查询,SQL 查询语句分别为:

ds1:SELECT * FROM 地图 where 省份 like '%省%'

ds2:SELECT * FROM 地图 where 1=1 ${if(len(省份)==0,"","and 省份='"+省份+"'")} and 省份 like '%省%'

其中 ds2 数据集定义了一个参数,参数名为「省份」。如下图所示:

2.2 设计图表

将地图和柱形图拖入到 body 中,适当的拉宽地图组件大小。如下图所示:

2.2.1 设计地图

1)编辑地图,绑定地图数据。如下图所示:

2)点击「特效>条件显示」,给地图添加一个条件属性,实现轮播时区域名即省份根据参数「省份」显示为红色。设置如下图所示:

2.2.2 设计柱形图

1)编辑柱形图,绑定柱形图的数据。如下图所示:

 2)点击「样式」,取消勾选标题可见,设置图例位置居上。如下图所示:

2.3 设计参数界面

2.3.1 添加参数

将参数界面拖入 body,自动置入 body 最上方。点击右上角的「全部添加」按钮,参数「省份」即被添加进参数界面。如下图所示: 

2.3.2 设置下拉框控件

设置「省份」为下拉框控件。点击 图标,选择「下拉框控件」,如下图所示:

2.3.3 设置文本控件

1)向参数界面拖入一个文本控件,设置其控件名称为「text0」,并取消勾选可见。

设置其控件值为公式:=sql("FRDemo","select 省份 from 地图 where 省份 like '%省'",1)。即控件值是从数据库表中获取的省份

 

2)给「文本控件」添加一个初始化后事件,JavaScript 代码如下:

var text0=this.getValue();

var arr=text0.split(",");

var i=1;

var a=this.options.form.getWidgetByName("省份");

setInterval(function(){

var value=arr[i];

if(i<=arr.length){

a.setValue(value);

_g().parameterCommit();

if(i==arr.length-1){

i=0;

}

else{i=i+1;}

}

},5000);

步骤如下图所示:

2.3.4 设置参数界面属性

选中参数界面 para,取消勾选「点击查询前不显示报表内容」和「使用常用参数组合」。如果勾选了「点击查询前不显示报表内容」,那么报表预览时第一个省份的数据将不会显示。

3.总结

至此,一张功能强大、视觉效果高大上的软帆地图图表就制作完成了,软帆FineReport中还有诸如热力地图、流向地图等图表设计功能等待发掘


网站公告

今日签到

点亮在社区的每一天
去签到