亲爱的大家,@gio@MarkAt亚搏在线Safe@takashi
非常感谢您的所有输入,它帮助我澄清了很多问题。
我实现了接近我所寻找的使用匹配/清单爆然后聚合。同样的结果可以用ListConcatenator最后将属性连接起来。我也测试了他的建议@takashi它还通过暴露属性和重命名来工作,这是我最初的工作方式。但这可能会导致我有太多的属性。因为一些点只有一个子类型,但是其他点可能有多达5个子类型。
很抱歉没有准确地提到格式。我写点功能类到一个Esri FGDB
亲切的问候,
亲爱的大家,@gio@MarkAt亚搏在线Safe@takashi
非常感谢您的所有输入,它帮助我澄清了很多问题。
我实现了接近我所寻找的使用匹配/清单爆然后聚合。同样的结果可以用ListConcatenator最后将属性连接起来。我也测试了他的建议@takashi它还通过暴露属性和重命名来工作,这是我最初的工作方式。但这可能会导致我有太多的属性。因为一些点只有一个子类型,但是其他点可能有多达5个子类型。
很抱歉没有准确地提到格式。我写点功能类到一个Esri FGDB
亲切的问候,
使用attributerenamer或listpopulator为每个相关对象创建属性,类似于将建议的表添加到特性结构中。
这可能会导致对象/特性有很多缺失或空属性。或具有大量属性的特性。(就像有很多树的森林)
在某些情况下,可以使用BulkAttributeRenamer (Action: Regular Expression Replace)将结构化列表属性的各个元素有效地转换为非列表属性。如果在以前的转换器中公开列表元素,BulkAttriuteRenamer将自动公开目标属性名称。
你没有提到你的写作格式。但是,除非格式支持XML这样的层次结构,否则不太可能像FME那样支持列表。那么,您的格式/软件如何处理具有多个值的特性呢?
就像@gio就是说,可以将值连接到一个字符串中,也可以将所有值写到一个单独的表中,并使用外键创建连接。
或者,您可以为每个值创建新的属性。例如,假设我有一个代表森林的点。在那片森林里,我想记录树木的种类,有橡树、枫树和松树。所以我有:
Mylist {0}。TreeType= oak Mylist{1}.TreeType= maple Mylist{2}.TreeType= pine
你可以做的是把它们重命名为多个属性,所以你有:
1号树=橡树2号树=枫树3号树=松树
这是另一种处理方法。您可以使用简单的AttributeRenamer,也可以在自定义转换器中创建一个循环(使用ListElementCounter查找需要循环的次数,使用ListIndexer提取属性)。
如果它是基于XML的格式,那么让我们知道,我认为可以为每个特性创建多个记录。
嗨@gio
谢谢你的回答,我认为这是可能做的事情,如解释在这个文件。或者直接暴露它来使用属性creator。但也许是我的版本,我用的是FME 2014 SPhttps://docs.亚搏在线safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/!List_Attributes/Understanding-List-Attributes.htm
是的,我也知道连接。所以,我将尝试爆炸和工作只与分隔表。
亲切的问候
你不能把一个列表的属性,你是知道的。
你的选择是,然后要么把一个字符串和存储结构连结数据的属性(listconcatenator等)
或列表从几何分开。
保持与几何特征的ID。
爆炸列表,并将它在某些表格的形式保存到您(或您使用软件的喜好)
其后,数据总是通过键(ID)访问。
就像实际上是一个空间数据库。