FME中的栅格数据操作之十四——使用FME自动生成Google Chart及随机彩色化图表(一)
原文发布时间:2010-06-17
作者:毛毛虫
FME提供了转换器WebCharter,使用这个转换器可以创建一个URL,用来获取一个指定数据的图表作为一个从Google Chart API 的PNG影像。
一个URL对每个输入转换器的要素创建。图表中的数据取自列表中指定的值,列表中的每个元素必需是一个数字。目前值能支持一个数据系列(也就是说当前没有能力在同一个图表中叠加数字集合)。转换器WebCharter的参数设置如下:
下面先举个例子说明下这个转换器的使用:
现在我有一个命名为xzq的shp文件,该文件如下:
(图片已丢失)
为了使用WebCharter转换器,我们需要先生成一个List,使用转换器AreaCalculator来计算每个多边形的面积,然后使用转换器Aggregator生成一个List,当然,我们可以使用转换器Sampler抽样几个数据来测试一下。
(图片已丢失)
使用转换器Aggregator时需要在List Name的选项中输入一个List名称,否则在输出时不会生成List属性,没有输入List Name时的属性如下:
在List Name中输入一个属性名称后,可以生成一个List,属性如图:
WebCharter转换器支持Google 图表类型的子集:Line charts, Bar Charts和 Pie Charts,即该转换器的Chart Type参数中的各个选项:
这个例子中,我使用Sampler转换器随便选取了几个要素来测试,分别选择不同的Chart Type,下面是不同的选择得到的不同的效果,其中WebCharter转换器设置如下:
(图片已丢失)
选择Line :
(图片已丢失)
选择Bar –Horizontal:
选择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这三个转换器:
转换器Aggregator和AttributeAccumulator的输出的区别是AttributeAccumulator只有属性没有几何,也就是Aggregator是把输入的几何要素聚合为一个聚合类,而AttributeAccumulator只是组合要素的属性。