📌 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.referencingorg.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 패키지의 관계를 나타냄