如何最快将四条#字形线中间的区域构面
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
Comments
如果你是在做一个多path的polyline,这个方法是正确的;如果是只想合并,用ITpolologicalOperation:union方法即可。
Leave a comment
Or, take a look at Archives and Categories
请问如何将多个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