요즘 부쩍 GIS 에 관심이 생겨서 이것저것 공부하는데, 최근에 Java 로 GIS 를 다루는
라이브러리가 하나 있다고 하여 궁금해서 공부를 좀 해보기로 했습니다.
이 라이브러리(artifact)의 이름은 GeoTools
입니다.
본격적인 사용법을 알아보기에 앞서 Maven 기본 세팅을 해보겠습니다.
참고로 저는 Spring Boot 를 자주 사용하니, Spring Boot 기반에
GeoTools
를 얹어서 사용하는 느낌으로 세팅을 해봤습니다.
window 10 Home Edition
Azul Zulu Version 17.0.6
Maven
Spring Boot 2.7.9
27.2
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>coding.toast.bread</groupId>
<artifactId>java-playground</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>java-playground</name>
<description>java-playground</description>
<repositories>
<repository>
<id>osgeo</id>
<name>Geotools repository</name>
<url>https://repo.osgeo.org/repository/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>osgeo-snapshot</id>
<name>Central Repository</name>
<url>https://repo.osgeo.org/repository/snapshot</url>
</repository>
</repositories>
<!-- 참고로 자바 17 은 현재 실험적으로 GeoTools 27.x 버전에 적용중이라 합니다. -->
<!-- 더 자세한 내용이 궁금하면 게시물 제일 하단의 "참고 링크"로 가주세요! -->
<properties>
<java.version>17</java.version>
<geotools.version>27.2</geotools.version>
</properties>
<dependencies>
<!-- EPSG, PROJ 등의 정보를 참조하려면 반드시 필요한 artifact (1) -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<!-- EPSG, PROJ 등의 정보를 참조하려면 반드시 필요한 artifact (2) -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-metadata</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-opengis</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-wfs-ng</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-process</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-transform</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
테스트라고 하기에도 민망하지만,
일단 라이브러리가 제대로 받아졌는지를 확인하기 위해서 간단한 출력 테스트를 해봤습니다.
@Test
void testOne() throws FactoryException {
CoordinateReferenceSystem decode = CRS.decode("EPSG:5186");
System.out.println("decode = " + decode);
}