基本转换器的使用——Joiner转换器

原文发布时间:2010-11-22

作者:糖糖


新手上路之转换器应用——joiner转换器

joiner转换器是一个关联转换器,可以完成从一个外部数据库到空间要素或非空间要素的关联,能运用到对空间数据添加属性信息的操作上。通过下面的例子可以帮助我们理解它的用法

一、What we have    数据库:信息表.mdb;要素集:test.shp

二、What we want    生成的shape文件中的地类添加相应的地类名称

三、步骤

1新建一个工作空间:读模块和写模块都是shape格式,在读模块中读取test.shp



然后插入joiner转换器,如下



2 连接数据库:点击joiner转换器属性,在弹出来的对话框中点击 ,就会弹出以下对话框


 这对话框中选择指定的外部数据库,下拉菜单中可以看到支持的数据库格式 


选择”Microsoft Access”,然后在 MDB File栏里在对应路径下选中信息表.mdb



因为这个数据库放在本机且没有设置密码,所以Username和Password可以不填(如果数据库设有用户名,就需要在填写用户名和密码才能访问),直接点击Next进入下一步选择我们要关联的表——信息表。



3 关联:下面对话框中看到信息表中的列:大类编码,地类编码,地类名称。我们要利用“地类编码”来给shape要素添加“地类名称“,所以“地类编码”作为关联列Keys把它添加到右边的清单中



将关联列与要素集中对应的属性匹配:BD Key中地类编码与test要素的DLBM关联




4 添加属性:在数据库中将需要添加到要素中的列,即“地类名称”移到右边的Added Attribute框中,点击Next;



 下面的对话框是选择关联类型,有四种类型可供选择


这四种类型表示了数据集中的行与要素集的要素之间的关联方式,由上至下为以下四种方式

a 、1:0..1   一对零或一对一,要素集中每一个要素可以与一个或零个记录关联,但是如果一个要素匹配出多个关联记录,将运行出错;

b、1:0..1+ 一对零或一对多,要素集中的要素若有任何数目的记录可以匹配,只关联第一个记录;

c、1:1     一对一 要素集中的要素与数据库的记录必须是一一关联,若出现多个匹配记录将出错

d、1:more  一对多 要素集中的要素与多个记录相关联,而且每一个记录都会列表添加到属性中去

在不确定要素集与数据库记录行关联个数的情况下,选择默认的第二种关联方式,点击Next,出现以下对话框为添加的属性值名称前加上前缀,比如我们加上前缀dlmc_




点击Next,提示是否需要关联属性值修剪



根据提示:如果有空间填充,就选择YES,点击Next,在优化joiner对话框中我们在Use Pretch Query项中打钩,不受默认行数或某个固定行数分配限制,利用预取语句Prefetch Query灵活分配添加的属性记录行数,在本例中我们要添加信息表中所有地类名称,如下:



点击Finish,再给写模块属性中添加地类名称字段来存储我们关联的列:



手动连接后,运行可以看到,有1837条记录添加到要素集中去,运行成功



在FME Universal View里我们就能看到shape文件里中添加了地类名称,如下图DLMC为“城市”。



初次运用该转换器遇到的问题:

在工作空间中,将数据库作为读模块,要素集作为写模块,结果JOINER转换器能运行,但是不能成功添加属性

总结:Joiner转换器直接访问和连结数据库,不在读模块中读取数据库,读模块读取要添加列的要素集,写模块输出关联后的要素集。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值