如何最快将四条#字形线中间的区域构面

Posted by 蒋波涛 27 December,2008 Views (2)Comment

问题:有四条polyline,排列成“井”字形,且中间的“口”字形线段,每条边长度均大于249,如何将该“口”形构面,速度要快,不要用左转算法一类的搞法。

解决方法:

1. 将四条polyline合并成一条polyline,这条polyline有四个path;

2.将新polyline进行Simplify处理,将其在内存中分割为12条segment

3.将长度>249的segment取出,共4条,将它们的起始点和终点共计8个放入一个空的Multipoint中,显然,有4个是重复的

下面呢?我们要将重复点简化成4个?然后计算每个点的坐标值,以确保它们按照顺时针方向来构成一个矩形面?这未免也太麻烦了

我的做法是ITopologicalOperator:ConvexHull,寻找这八个点的外轮廓面,一次搞定!

Related Items

Categories : ArcObjects Tags : ArcObjects  
Comments
2009-3-2 8:49:28

请问如何将多个polyline合并为一个polyline?我合并之后,线的路径多打乱了,跟原来的完全对应不上,下面的有没有问题呢
Dim pTempPolyline As IPolyline
Dim pGeomCol As IGeometryCollection
Set pGeomCol = New Polyline

Dim pFeatCursor As IFeatureCursor
Set pFeatCursor = pInLineFC.Search(Nothing, False)
Dim pFeat As IFeature
Set pFeat = pFeatCursor.NextFeature
While Not pFeat Is Nothing
Dim pGeoCol2 As IGeometryCollection
Set pGeoCol2 = pFeat.Shape
pGeomCol.AddGeometryCollection pGeoCol2
Set pFeat = pFeatCursor.NextFeature
Wend

Set pTempPolyline = pGeomCol

Posted by lee Gravatar Icon

2009-3-2 9:05:35

如果你是在做一个多path的polyline,这个方法是正确的;如果是只想合并,用ITpolologicalOperation:union方法即可。

Posted by 蒋波涛 Gravatar Icon

Leave a comment

Or, take a look at Archives and Categories

目录

存档