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

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

作者:毛毛虫

    在上一篇中大体对WebCharter函数的使用做了下介绍,这一部分是一些注意事项及部分解决方法。

使用WebCharter函数时有一个问题,就是不能像在Excel中那样,对每一条生成它们自己的颜色。Google Chart API允许对每条设置各自的颜色,但是FME没有通过这个函数的端口公开这一部分(Google Chart API允许对每条设置各自的颜色)。

我们可以使用FME技术用另一种方法来对每条设置不同的颜色,即使用RasterExtentsCoercer和Deaggregator函数把图表中的每一条分布转换为多边形,使用函数RandomColorSetter对每一个多边形随机赋予不同的颜色。 

    (图片已丢失

    注意函数RasterExtentsCoercer中Extents Type的三个选项中需要选择Data Extents(这个函数在前面文章中有详细说明,在此不再重复)。

    

具体过程如下:

从ImageFetcher函数的输出端口输出的数据如下:

    (图片已丢失

为了能提取出每个条,需要把这些条从栅格数据中区分出来,通过观察发现,除了条的颜色,标题(图中为region)和横竖坐标轴及坐标轴上的标注中各个像素的R、G、B值相同,背景颜色是白色,即RGB为(255,255,255)。

可以使用函数RasterExpressionEvaluator,表达式设置如下:

if(A[0]==A[1]&&A[0]==A[2],0,100);if(A[0]==A[1]&&A[0]==A[2],0,100);if(A[0]==A[1]&&A[0]==A[2],0,100)。

这样除了每条的颜色为(100,100,100)外,其余的颜色为(0,0,0)。


然后使用RasterBandNodataSetter设置0为Nodata值,即可以得到下面的效果:


然后使用上面提到的两个函数:RasterExtentsCoercer和Deaggregator,把每一条转换为一个多边形:

  (图片已丢失

使用RandomColorSetter函数对每个多边形随机赋予不同的颜色:


然后使用VectorOnRasterOverlayer函数把这个矢量图层和前面从ImageFetcher中输出的栅格数据进行叠加:

  (图片已丢失

还需要注意的问题是该函数不支持中文,也就是对标题或标注赋值为中文时,显示不出来。

如我把WebCharter的设置修改如下: 

  (图片已丢失

也就是Chart Title和Data Label都修改为了中文(xzq{}.XZQHMC值如下图)。

  (图片已丢失

此时生成的图标如下:


没有把标题和下面的中文标注显示出来。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值