라벨이 ITopologicalOperator인 게시물 표시

[ArcObjects]여러 Geometry를 하나로 합치기(Union)

이미지
Geometry 연산 중에서 여러 Geometry를 하나의 Geometry로 합치는 과정을 일반적으로 Union이라 부른다. Union은 다음 그림과 같이 서울시의 모든 시군구 폴리곤을 하나로 합쳐 서울시경계 폴리곤을 생성하기 위해 사용될 수 있다. 이 문서는 ITopologicalOperator 인터페이스를 활용하여 Geometry를 Union하는 예를 샘플코드와 함께 제공한다. ▣ ITopologicalOperator 사용시 주의사항 High-level Geometry( point, multipoint, polyline, polygon) 에만 적용할 것 Union 대상 Geometry의 SpatialReference는 동일할 것 ▣ 기본 사용법  - 두 Geometry를 Union하는 방법 [code c#] IGeometry geometryA = GetGeometryA(); IGeometry geometryB = GetGeometryB(); ITopologicalOperator2 topoOpt = (ITopologicalOperator2)geometryA; IGeometry unionGeometry = topoOpt .Union(geometryB); [/code] ▣ ITopologicalOperator의 Union Method를 반복적으로 사용  - FeatureClass에서 검색된 Feature의 모든 Shape을 하나의 Geometry로 Union하며 Union 메쏘드를 반복적으로 수행하는 예이다. 피쳐 수가 많아지면 처리속도가 느려진다. [code c#] private IGeometry UnionGeometry(IFeatureClass featureClass, IQueryFilter queryFilter) {     ITopologicalOperator2 unionTopoOpt = null;     esriGeometryType geometryType = featureClass.ShapeType...

ITopologicalOperator

이미지
ArcObjects Geomtery 관련 인터페이스 중 Geometry를 핸들링하는 가장 중요한 인터페이스가 무엇일까? 선택하라면 아마도 ITopologicalOperator, IRelationalOperator, IProximityOperator일 것이다. ITopologicalOperator 인터페이스는 기존 Geometry 간의 위상관계를 바탕으로 새로운 Geometry 를 생성하기 위한 멤버 접근을 제공한다. ▣ Remarks - GeometryBags은 Buffer, Clip, Simplify만 지원한다. - High-level Geometry( point, multipoint, polyline, polygon) 에만 적용되어야 한다. - ITopologicalOperator를 사용할 때 Spatial reference를 설정해 주는 것이 성능면에서 효율적이다. 특히 circular arcs, bezier curves, elliptical arcs의 경우에는 더욱 그렇다. - 9.3 버전 이후에서 ITopologicalOperator5 인터페이스로 대체 및 최신 버전 사용 권장 ▣ CoClasses that implement ITopologicalOperator  - GeometryBag, MultiPatch, Multipoint, Point, Polygon, Polyline  - esriDefenseSolutions: GeoEllipse, GeoPolygon, GeoPolyline ▣ Members ○ Boundary [C#] public IGeometry Boundary {get;} Boundary는 Geometry 의 exterior의 한 부분으로 원본 Geometry 의 차원보다 한 차원 낮다. 즉, Polygon 의 Boundary는 Polygon 의 Ring을 구성하는 Polyline , Polyline 의 Boundary는 Polyline 을 구성하는 각 Path의 끝점들로 구성된 Multipoint , Mu...

[Tips]Simplifying a geomtery

이미지
Simplify는 Geometry (이하 지오메트리) 가 Topologically Legal(Correct, Consistency ) 한 상태를 만드는 과정이며, 일반적으로 ITopologicalOperator 인터페이스의 Simplify 메쏘드를 사용한다. Simplify는 지도학에서의 일반화( Generalization)와는 전혀 다른 의미로 사용되며, 일반화는 IPolycurve 인터페이스의 Generalize( Douglas-Peucker simplification algorithm ) 메쏘드를 사용할 수 있다. 여기에서는 Simplify의 개념과 Point, MultiPoint, Polyline, Polygon에서의 Simplify 적용 과정을 개략적으로 살펴본다. 1. When do I need to simplify a geometry? * 원문출처 : http://resources.esri.com/help/9.3/ArcGISEngine/dotnet/0dfbaef2-4bb0-4ccb-b0d4-ee9b59b272d9.htm ▣ About simplifying a geometry Simplify는 입력 지오메트리를 영구적으로 변형하므로, 지오메트리 유형에 따른 Topologically Legal(Correct, Consistency )한 정의를 잘 고려해서 사용해야 한다. * 참고 : ArcSDE Shape Verification Rules Simplify 메쏘드를 사용하는 방법 및 사전에 필요한 정보는 아래 [2. What do I need to know before calling Simplify?] 섹션을 참고한다.   ▣ Simplify and points Point 자체는 어떤 제약사항도 없기 때문에 Point 지오메트리 에 대해서 Simplify를 적용하지 않는다 .   ▣ Simplify and multipoints Multipoint에 대해서 Simplify는 지오메트리의 spatial reference grid에 모...