[GeoTools] Maven 세팅

식빵·2023년 3월 27일
0

GeoTools

목록 보기
1/3
post-thumbnail

요즘 부쩍 GIS 에 관심이 생겨서 이것저것 공부하는데, 최근에 Java 로 GIS 를 다루는
라이브러리가 하나 있다고 하여 궁금해서 공부를 좀 해보기로 했습니다.

이 라이브러리(artifact)의 이름은 GeoTools 입니다.
본격적인 사용법을 알아보기에 앞서 Maven 기본 세팅을 해보겠습니다.
참고로 저는 Spring Boot 를 자주 사용하니, Spring Boot 기반에
GeoTools 를 얹어서 사용하는 느낌으로 세팅을 해봤습니다.


🍀 참고: 개발환경

  • OS : window 10 Home Edition
  • java version & vendor : Azul Zulu Version 17.0.6
  • buildTool : Maven
  • FrameWork : Spring Boot 2.7.9
  • GeoTools version : 27.2

🍀 Maven 설정

<?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);
}



📌 참고 링크

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글