📌 GeoAPI 라이브러리 개요
GeoAPI 라이브러리는 ISO 및 OGC 표준 문서에서 정의된 타입을 공식적으로 관리합니다.
➡ 국제표준화기구(ISO) 및 오픈 지리공간 컨소시엄(OGC)이 채택한 지리정보 처리 표준을 Java에서 구현
✅ 명세서에서 정의된 개념 → GeoAPI에서 구현되는 방식
- 명세서(ISO/OGC): UML을 사용하여 데이터 타입, 메서드 및 관계 정의
- GeoAPI: 이를 Java 언어의 인터페이스 또는 단순 클래스로 변환하여 제공
📌 GeoAPI의 역할
- ISO/OGC 표준을 충족하는 구현을 원하는 개발자에게 개발 지침 제공
- 표준 데이터 타입을 활용하는 개발자는 간단히 인터페이스 메서드를 호출하여 사용 가능
- API의 구현을 쉽게 교체 가능 (GeoAPI 인터페이스 호출 코드는 변경 없이 유지)
6.1 GeoAPI 라이브러리의 구조
📌 ISO 및 OGC 명세서에 따른 패키지 구조 반영
➡ 다양한 타입과 기능을 개별적인 Java 패키지로 분리하여 구현
✅ 기본 패키지 (org.opengis.annotation)
- 모든 메서드와 타입의 출처 및 의무 수준을 문서화하는 어노테이션 시스템 제공
- 런타임 시 리플렉션(introspection) 을 통해 이 정보를 활용 가능
✅ 핵심 유틸리티 패키지 (org.opengis.util)
- ISO 및 OGC 표준에서 정의한 핵심 타입을 Java에 맞춰 변환
- Java에서 기본 제공되지 않는 추가 타입도 포함
✅ 메타데이터 패키지 (org.opengis.metadata)
- ISO 19115 메타데이터 명세서에서 정의된 데이터 타입 포함
- 구조를 설명하는 텍스트 참조를 보관하는 데이터 구조 제공
✅ 좌표 참조 및 변환 패키지
org.opengis.referencing및org.opengis.parameter- ISO 19111 (Spatial Referencing by Coordinates) 명세서 기반
- OGC 01-009 (Coordinate Transformation Services) 명세서 기반
- 수학적 연산자 타입 포함
✅ 지오메트리 패키지 (org.opengis.geometry)
- ISO 19107 Spatial Schema 명세서 기반
- GeoAPI 3.0에서는 OGC 01-009에 필요한 핵심 요소만 구현
- OGC 01-009의 지리 참조 타입과 상호 의존성이 존재
6.2 ISO 명세와 GeoAPI 패키지 매핑 (Figure 1)
📌 아래 이미지는 ISO 명세와 GeoAPI 패키지의 관계를 나타냄
