加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FME坐标点提取

(2011-05-04 11:36:08)
标签:

fme

gis数据转换

分类: FME

最近做一个项目需要对坐标点进行提取并保留点的顺序,经过学习后,在FME制作了一个自定义函数,现在跟大家分享一下。

 

思路分析:

1、    取几何对象点数作为属性存储;初始化索引位置计数器;

2、    判断索引位置是否小于点数,如果满足条件,则按输出索引位置提取坐标并生成点输出,同时转到第3步;否则不做任何操作。

3、    对索引位置递增,重复第2步的操作。

 

制作过程:

1、  首先利用“CoordinateCounter”函数对点数进行提取,并作为“coord_sum”属性存储;

http://s1/middle/7cfdb4dexa26afbe204f0&690

2、  添加“AttributeCreator”函数增加点序“coord_index”属性,并赋值为“0”;

http://s4/middle/7cfdb4dex76a44c8baeb3&690

3、  添加“Tester”函数来判断点序是否在点数之内;

http://s15/middle/7cfdb4dexa26b01c16c3e&690

4、  对不满足条件的情况,不作处理;对于满足条件的情况,则添加“CoordinateExtractor”函数对点序所在点的坐标值进行提取;

http://s15/middle/7cfdb4dexa26b03425bae&690

 

5、  添加“2DPointReplacer”函数把提取到的坐标值生成点并进行输出,输出后“coord_index”属性表示点序;

http://s8/middle/7cfdb4dexa26b05af20b7&690

6、  注意在第三步判断后,还需要对满足条件的情况进行点序递增,并返回到第3步进行执行:添加“ExpressionEvaluator”函数,使coord_index等于coord_index加1进行递增过程;

http://s14/middle/7cfdb4dexa26b0881e31d&690

7、  现在需要做的是怎样使“ExpressionEvaluator”函数输出的结果循环到“Tester”判断函数输入:添加一个输入指向“Tester”函数输入,在“ExpressionEvaluator”函数后添加一个循环并指向“Tester”输入;

http://s4/middle/7cfdb4dexa26b0a22f723&690

8、  最后把此过程发布成“VertexesReplacer” 函数。

 

感兴趣的朋友,下载后双击注册函数,启动FME Workbench便可看到“VertexesReplacer”函数。

 

下载地址:http://u.115.com/file/f39eafa551

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有