您好,登錄后才能下訂單哦!
IGeometryCollection
IGeometryCollection 接口被 Polygon,Polyline, Multipoint, Multipatch, Trangle,Trangle Strip,Trangle Fan 和 GeometryBag 所實現。
Geometry 屬性
通過一個索引值返回一個組成該幾何對象的某個子對象。
GeometryCount 屬性
返回組成該幾何對象的子對象的數目。
AddGeometry 方法
向一個幾何對象添加一個幾何對象,將子對象添加到幾何的指定索引值的位置。
AddGeometries 方法
向一個幾何對象添加多個幾何對象,將子對象數組添加到集合的最后。
在使用 AddGeometry 方法添加子對象到 Polygon 對象的過程中,如果子對象即 Ring 出現覆蓋現象,那么多邊形就沒有封閉或出現了包含關系,那么這個 Polygon 就不是簡單 Polygon,因此通過 IGometryCollection 來創建一個 Polygon 時,需要使用 ITopologicalOperator 的 Simplify 方法保證其有效性
private IPolygon ConstructorPolygon(List<IRing> pRingList) { try { IGeometryCollection pGCollection = new PolygonClass(); object o = Type.Missing; for (int i = 0; i < pRingList.Count; i++) { // 通過IGeometryCollection接口的AddGeometry方法向Polygon對象中添加Ring子對象 pGCollection.AddGeometry(pRingList[i], ref o, ref o); } // QI至ITopologicalOperator ITopologicalOperator pTopological = pGCollection as ITopologicalOperator; // 執行Simplify操作 pTopological.Simplify(); IPolygon pPolygon = pGCollection as IPolygon; //返回Polygon對象 return pPolygon; } catch (Exception Err) { return null; } }
private IPolygon MergePolygons(IPolygon FirstPolygon, IPolygon SecondPolygon) { try { // 創建一個Polygon對象 IGeometryCollection pGCollection1 = new PolygonClass(); IGeometryCollection pGCollection2 = FirstPolygon as IGeometryCollection; IGeometryCollection pGCollection3 = SecondPolygon as IGeometryCollection; // 添加FirstPolygon pGCollection1.AddGeometryCollection(pGCollection2); // 添加SecondPolygon pGCollection1.AddGeometryCollection(pGCollection3); // QI至ITopologicalOperator ITopologicalOperator pTopological = pGCollection1 as ITopologicalOperator; // 執行Simplify操作 pTopological.Simplify(); //返回Polygon對象 IPolygon pPolygon = pGCollection1 as IPolygon; return pPolygon; } catch (Exception Err) { return null; } }
ISegmentCollection
ISegmentCollection 接口被 Path, Ring, Polyline 和 Polygon 四個類實現。
IPointCollection
ISegmentCollection 可以被多個幾個對象類所實現,如 Multipoint, Path, Ring, Polyline, Polygon, Trangle,Trangle Strip,Trangle Fan, Multipatch.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。