span8
span4
图表可以动态使用FME被生成并谷歌的图表API。在以下示例中,坐标数据从ESRI的shapefile读取并连接到包含在CSV文件(逗号分隔值)选举结果。饼图使用HTML代码生成,其结果输出到KML(在谷歌地球查看)。
可作为一个多边形的Shapefile温哥华附近表决边界。
选举结果CSV格式。
1。阅读源CSV数据
在一个空白工作区,添加一个CSV阅读器,并添加Vancouver2014ElectionResults.csv,默认参数都OK。此CSV文件包含选举结果数据来填充饼图。
2。爆炸属性
在所有的选区存储为列标题的源数据的通知。设计数据库时,最好的做法是共享一个共同的主题存储值(例如位置和在不同的表表决计数) - 或FME,作为单独的属性。要做到这一点,我们将使用AttributeExploder变压器。在参数,设定属性名称标签,以位置和属性值标签来VOTE_COUNT。我们仍然要保持我们的所有属性,我们已经取得了新的后,所以设置保留属性为是。连接督察变压器和运行转换。
爆炸属性来存储共享一个共同的主题值。
3。删除FME格式属性
FME创建某些属性的属性在幕后,通常情况下,这些属性被忽略,并且不会影响最终输出。查看从AttributeExploder输出,你可以看到有像CSV2_1和fme_no_geom的VOTE_COUNT列中添加的各种功能。使用测试仪变压器,设置左值到VOTE_COUNT,操作员可以包含正则表达式,然后设置正确的价值为[0-9]。这个正则表达式检查数据,以确保它是数字。
使用正则表达式,确保VOTE_COUNT只包含数值
4。创建的HTML属性
以下为文件谷歌的图表API,数据必须被转换成[“数据”,值]使用AttributeCreator格式。一个AttributeCreator变压器连接到测试仪上的过去的输出端口。在参数方面,创建一个新的属性称为_format_candidate和值设置为
[“@Value(候选)”,@值(VOTE_COUNT)]
5。按位置聚合属性
我们的目标是有在温哥华各投票区的饼图,所以我们需要由地点聚集了_format_candidate。添加聚合变压器到画布,设置组通过对位置和模式,以属性而已。然后请输入属性,选择是,设置属性来连接到_format_candidate。
由LOCATION使用聚合器,基
6。创建属性包含饼图的HTML
现在要创建饼状图,也可以使用ChartGenerator transformer来完成,如果您想使用该方法,可以查看FME教程中的创建图。对于本例,我们希望利用谷歌映射API的强大功能,因此我们将编写自己的HTML和JavaScript。使用AttributeCreator创建三个属性_html1、_html2和_html3。
对于_html1,输入以下值:
使用AttributeCreator创建HTML
7。串联_html属性,形成一个
现在我们已经创建了HTML属性,我们需要将它们连接到一个属性中,以便读取到图表中。使用StringConcatenator,将新属性命名为_html,然后对于字符串部分,将字符串类型设置为属性值三次,然后分别将每个字符串值设置为_html1、_html2和_html3。
使用StringConcatenator来连接所有三个属性_html一起
8。阅读在Voting_Boundary shape文件
现在,我们需要为地图创建大头针,以包含单击时弹出的饼图。将Shapefile阅读器添加到画布并在voting_boundary中进行读取。shp,默认参数是ok的。多边形形状文件是温哥华市的市政投票边界,它提供了放置包含饼状图的大头针的坐标。
9。创建投票边界的大多边形
因为CSV中的选举数据被组织到投票区域中,所以使用Dissolver转换器为Shapefile中包含的许多投票边界中的每一个创建一个更大的多边形—这确保每个区域只创建一个饼图。向画布添加一个溶解器,并将其连接到Shapefile读取器。在参数中,将Group By设置为LOCAL_AREA,并设置累加模式来合并传入的特性。
10。创建每个多边形内部的中心点
我们需要在每个投票边界多边形内创建一个中心点,以便放置大头针,以便弹出包含图表的信息窗口。将CenterPointReplacer添加到画布并将其连接到溶解器上的区域输出端口。
11。提取存储在属性中具有坐标
现在已经建立了一个中心点,我们需要提取它的坐标来创建纬度和经度属性。添加一个坐标提取器变压器,并将其连接到CenterPointReplacer上的点输出端口。在参数中,将模式设置为指定坐标,然后将X属性更改为经度,将Y属性更改为纬度。
12。合并CSV数据和中心点
现在已经创建了HTML饼图和中心点,我们需要将它们合并在一起。向画布添加一个FeatureMerger,将CoordinateExtractor上的输出端口连接到请求程序输入端口,将StringConcatenator上的输出端口连接到供应商输入端口。在参数中,将请求者设置为LOCAL_AREA,将供应商设置为LOCATION。然后将特性合并类型设置为属性和几何图形。
13。重新投影数据
使用连接到FeatureMerger的合并输出端口的re幻灯机变压器,将数据重新投影到LL-WGS84中,使用的是与谷歌地球兼容的格式。
14。创建标针,插入饼图
将KMLPropertySetter变压器连接到re幻灯机上的重新投影输出端口。在参数中,将名称设置为LOCAL_AREA,然后将摘要设置为:
2014年温哥华地区选举结果
对于Description气球,将内容类型设置为HTML,将内容设置为_html。然后将Include属性表设置为No。这将创建placemark大头针并将饼图插入到信息气球中,当大头针单击时,信息气球是可见的。
15。创建背景多边形
要创建投票区域的背景多边形,请在溶解器的区域输出端口上添加一个AttributeKeeper转换器。在参数中,将属性设置为LOCAL_AREA。接下来,将KMLPropertySetter连接到AttributeKeeper输出端口。然后在参数中将名称设置为LOCAL_AREA,将摘要设置为:
@ value (LOCAL_AREA)投票
然后对于Description气球,将内容类型设置为Text,将内容设置为Voting District。将Include属性表设置为No。
16。(可选)式引脚和多边形。
如果您想更改您的大头针和投票区多边形的样式,您可以向每个KMLPropertySetter添加一个KMLStyler,并将参数更改为您所选择的样式。
17。写信给谷歌地球KML
向画布添加一个谷歌KML写入器,将特性类型定义设置为Automatic…,单击OK。将特性类型名称更改为Elections并单击OK完成添加写入器。将写入器连接到KMLPropertySetters的输出端口,或者如果使用KMLStyler对数据进行样式设置,则将写入器连接到KMLStylers的输出端口。
18。查看谷歌地球输出
运行翻译,然后打开选举KML在谷歌地球查看结果。点击任何一个图钉都可以看到包含2014年选举数据的饼状图。
结果谷歌地球
数据归属
这里使用的数据来源于由温哥华市不列颠哥伦比亚省。它包含在开放政府许可下的信息-温哥华。
到目前为止,非常感谢你的帮助
第二张图片:
©2019安全亚搏在线软件公司|法律