转换器LengthToPointCalculator的使用示例

原文发布时间:2013-07-22

作者:毛毛虫

 

背景:在使用高精度手机GPS采集长输管道拐点并依此生成管道中线的工作中,因为现场是分段采集,很多采集人员同时工作,而且单个人员采集过程又也很难做到按顺序依次采集。这样采集回来的管道拐点是无序的,如果想通过这些点连接生成管道路线,就必须对管道拐点按管道走向依次排序。思路是以管道设计路线为依据,计算每个拐点相对于管道设计中心的在线里程,然后以里程排序连接即可生成正确的管道中线。

原数据:管道设计路线(线要素)和管道拐点(点要素),如下图:


预计效果:计算与点最近的线上的位置到线起点的长度

实现方法:使用NeighborFinder找出与点距离最近的线,用LengthToPointCalculator计算线上距离该点最近的点到线起点的长度

具体步骤:

1)使用Counter转换器分别对每个点和线数据赋唯一属性

2)使用NeighborFinder找出距离每个点最近的线要素

3)提取点要素的xy坐标

4)使用FeatureMerger转换器,将点的xy坐标赋给对应的线要素。这一步需要注意,由于点与线是多对一的关系,要处理重复要素并生成list来保存与线对应的所有点要素的xy坐标,设置如下:

5)计算每个点的线上距离该点最近的点到线起点的长度,需要使用ListExploder对每个点都生成一条线,然后用LengthToPointCalculator来计算距离

6)再次使用FeatureMerger,将计算出来的长度值重新赋给点,完成。

完整的模板如下:



猜你喜欢

转载自blog.csdn.net/fmechina/article/details/81013408