我可以想出很多方法来改变这一点,虽然哪个更快,我不确定。
首先,您可以使用这些点作为FeatureReader的发起程序功能。即,每个点使用空间过滤器查询多边形数据集(启动器在结果中)。就像PointOnAreaOverlayer一样。只需将几何体设置为“使用启动器”,它应该保留几何体并合并到源多边形的属性中。省去了两步流程。
其次,你不需要在那里再重复一遍。您只需使用coordinatextractor获取NAD中的coords,并使用attributereProjectTransformer将这些值重新投影到状态平面。那,我想,可以节省你一些时间;也就是说,你不必冒着改变几何学的风险,在一个重投影过程中来回走动。
第三,正如高桥所说,快船几乎肯定比PointOnAreaOverlayer快——至少在我的经验中是这样——所以即使上述想法没有帮助,换一个剪子应该是一个好处。注:并不是说覆盖层在做同样的事情时天生就慢,但它确实执行了额外的功能(例如计算重叠的数量,或者生成一个列表),而裁剪器不这样做,我觉得你在这里不需要。
编辑:我刚刚有其他想法…
这些点总是一样的吗?还是经常重复使用?我要说的是,如果有任何方法可以保存状态平面区域(即使它在具有外键匹配的查找表中),那么将来的处理将比重新执行空间过滤器快得多。或者,如果这些是地址信息存储为属性的地址,那么你已经知道地址在哪个州了,只是不是哪个区域。从我的经验来看,空间过滤是一个昂贵的过程,如果你能避开它,或者最小化它,那你就节省了很多时间。
我还要补充一点,我不相信快船优先,或者区域优先会节省你很多时间。一般来说,它们减少了内存使用,而不是时间。只有当你耗尽了那么多的内存,以至于FME必须缓存到磁盘上时,时间方面才会出现。那是XXXX第一次可以节省时间的时候,通过阻止磁盘缓存。但是对于5K点功能呢?不应该是个问题。
如果目的只是确定每个点是否重叠一个区域,裁剪器(裁剪器类型:裁剪器优先)可能比PointOnAreaOverlayer更有效。
第一个快速的想法-确保区域覆盖器上的点具有区域优先权。这应该可以让你的观点直接通过。感觉特征持有者不需要阻塞点——我认为创造者应该在点到达之前让特征读取者发送多边形。对我来说,这是使这件事情更快发展的关键。
出于好奇,涉及多少点?