西班牙
斯潘4
嗨,我有一个GDB文件,其中包含超过100万个多边形,我想合并/分解3000米以下的每个多边形到它们最小的邻居。我试过使用arcgis工具箱中的消去工具,它只会放大到最大的多边形,而不是我想要的。然后我使用spatial join和其他工具让它工作,但是这个过程花费了太多时间,大约5个小时。
所以我希望fme有一些变压器可以实现这一点,至少有些变压器像arcgis中的工具。
下面是一个例子,我想把选定的多边形合并成795.67m2的多边形,而不是9798080.13m2的多边形。
@高石
您好!@波波,我的想法是,从多边形边界创建拓扑边,删除要合并的面之间的边,然后从剩余边重建多边形。
我认为,如果多边形边界在拓扑上是干净的,那亚搏在线么附加的工作流在理论上应该可以工作。完全精确的相邻多边形之间没有间隙/没有重叠。
溶出-多边形-具有最小邻居.fmwt(FME 2018.1.0.0)
将“candidate”(_edge_id, _this_id, neighbor_area)设为(select a)。_edge_id,。_this_id b。_area as neighbor_area from ( select _edge_id, _left_face as _this_id, _right_face as _neighbor_id from "Edge" where _left_face <> 0 and _right_face <> 0 union all select _edge_id, _right_face as _this_id, _left_face as _neighbor_id from "Edge" where _left_face <> 0 and _right_face <> 0 ) as a inner join "Face" as b on b._face_id = a._neighbor_id where a._this_id in (select _face_id from "Face" where _area < $(MAX_AREA)) ) select * from "Edge" where _edge_id not in ( select distinct _edge_id from "candidates" as a inner join ( select _this_id, min(neighbor_area) as min_neighbor_area from "candidates" group by _this_id ) as b on b._this_id = a._this_id and b.min_neighbor_area = a.neighbor_area )
?2019安全亚搏在线软件公司|合法的