FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

原文发布时间:2010-06-17

作者:毛毛虫

 

FME提供了转换器WebCharter,使用这个转换器可以创建一个URL,用来获取一个指定数据的图表作为一个从Google Chart API 的PNG影像。

一个URL对每个输入转换器的要素创建。图表中的数据取自列表中指定的值,列表中的每个元素必需是一个数字。目前值能支持一个数据系列(也就是说当前没有能力在同一个图表中叠加数字集合)。转换器WebCharter的参数设置如下:

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

下面先举个例子说明下这个转换器的使用:

    现在我有一个命名为xzq的shp文件,该文件如下:    

(图片已丢失)

为了使用WebCharter转换器,我们需要先生成一个List,使用转换器AreaCalculator来计算每个多边形的面积,然后使用转换器Aggregator生成一个List,当然,我们可以使用转换器Sampler抽样几个数据来测试一下。

(图片已丢失)

使用转换器Aggregator时需要在List Name的选项中输入一个List名称,否则在输出时不会生成List属性,没有输入List Name时的属性如下: 

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

在List Name中输入一个属性名称后,可以生成一个List,属性如图:

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

WebCharter转换器支持Google 图表类型的子集:Line charts, Bar Charts和 Pie Charts,即该转换器的Chart  Type参数中的各个选项:

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

这个例子中,我使用Sampler转换器随便选取了几个要素来测试,分别选择不同的Chart Type,下面是不同的选择得到的不同的效果,其中WebCharter转换器设置如下:

(图片已丢失)

选择Line :

(图片已丢失)

选择Bar –Horizontal:

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

选择Bar –Vertical: 

(图片已丢失)
  

选择Pie -Flat:

(图片已丢失)
  

选择Pie -3D

(图片已丢失)

使用转换器ImageFetcher来获取由WebCharter中生成的URL产生的图表,并把它转化为一个栅格要素,用于更进一步的处理和输出,一个URL的例子如:http://chart.apis.google.com/chart?cht=lc&chd=s:9ukdmccRRVGAEFxBjCwjsSieaipSMKQQDaJTxWo&chs=400x200&chtt=行政区面积分布&chxt=y,x&chxl=1:%7C酉阳县%7C彭水县%7C石柱县%7C秀山县%7C江津区%7C合川区%7C黔江区%7C长寿区%7C渝北区%7C &chxr=0,0.00396067755085725,0.478022564198222&chco=FF59FD。当然可以使用转换器StringConcatenator来修改URL(Google Chart API允许),来修改样式或颜色等。这个URL的另一个作用是,当写入KML的时候,作为kml_description的一部分,连接动态图表到包含这个图表的地标。

也就是要获取一个Google 图表,一般可以使用Aggregator(或AttributeAccumulator)、WebCharter和ImageFetcher这三个转换器: 

FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)

转换器Aggregator和AttributeAccumulator的输出的区别是AttributeAccumulator只有属性没有几何,也就是Aggregator是把输入的几何要素聚合为一个聚合类,而AttributeAccumulator只是组合要素的属性。