[GeoServer] Layer Publishing

식빵·2023년 3월 5일
4

Geoserver

목록 보기
3/7
post-thumbnail

👏 GeoServer - Layer Publishing


GeoserverOGC(Open Geospatial Consortium) 의 표준을 잘 지키는 웹 서버이다.
그래서 WMS, WFS 와 관련된 요청을 보내면 이에 대한 적절한 응답을 준다.
이때 응답의 Geometry(또는 Feature)와 관련된 정보를 받을 수 있는데,
GeoServer 에서는 이런 정보들을 Layer 라는 단위로 관리한다.


그렇다면 GeoServer Layer 라는 게 정확히 뭘까?

Geoserver 는 자신이 참조하는 다양한 Stores(저장소) 의 Feature 정보에 접근할 수 있고 해당 정보를 발행(publish)하여 Geoserver 의 Client 와 정보를 공유할 수 있다.

이때 발행한 Feature 정보를 GeoServer 에서는 하나의 단위 로서 관리하는데,
그것이 바로 Layer 이다
.

여기서 발행(publish)이란 표현은 자주 쓰이니 제대로 알아두고 넘어가자.


( 출처: 표준국어대사전 )

Geoserver 의 발행이라는 표현은 「2」 의 정의가 적절하다.
GeoServer 는 비록 자기 자신이 근본적인 Geometry 정보를 생성하는 것은 아니지만,
결과적으로 해당 정보를 세상에 내놓아서 공유할 수 있도록 Layer 라는 단위로 생성한 것이다.
"발행"한 것이다.




👏 Layer Publishing 의 절차


서론이 길었다. 지금부터 GeoServer 의 Layer 를 발행의 과정을 알아볼 것이다.
발행의 과정은 다음과 같은 간단한 작업을 하면 끝난다.

  1. WorkSpace 생성
  2. Store 생성
  3. Store 기반의 Layer 를 발행(생성)

이 각 작업은 GeoServer 의 좌측에 있는 Workspaces, Stores, Layers 메뉴에서 가능하다.

지금부터 저 메뉴를 차례대로 들어가서 작업을 진행해보겠다.
목차도 메뉴와 같게 작성했다.




📁 WorkSpace (작업공간) 생성


1. WorkSpace 란?

Workspace 는 우리의 컴퓨터로 따지면 여러 파일, 그리고 또 다른 디렉토리를 포함하는 하나의 큰 "디렉토리(📁)"와 성격이 비슷하다. 또 다르게 표현하면 GeoServer 에서 생성되는 다양 것들을 담을 수 있는 Container 이기도 하다.
이후에 우리가 만들어갈 Store, Layer 등과 같은 것들도 바로 이 Workspace 포함 시키게 된다.

참고로 Workspace 는 GeoServer 에 존재하는 무수히 많은 Layer 들간의 구분을 하기 위한
namespace 로도 사용된다. (ex: namespace_name:layer_name)
이건 나중에 Layer 를 발행할 때 알게 되니, 지금은 이런 게 있다는 것만 알고 넘어가자.


2. 생성 방법

최대한 그림을 사용하고 설명을 생략합니다.
특히 "?? 버튼을 클릭하고 ?? 버튼을 클릭한다" 등의 절차적인 동작 지시 표현은 최대한 안 쓸 겁니다. 그림을 최대한 보면서 따라해주세요 😊


  • Namespace URI 는 실제로 운영중인 도메인을 쓸 필요는 없다.
    이 URI 는 그저 GeoServer 내부적으로 사용하기 위함이다.
    다른 WorkSpace 에서 사용하지 않는 URI 값을 주고 넘어가면 된다.

  • 정상적으로 생성되면 위와 같이 앞서 지정한 WorkSpace 이름이 보인다.




💾 Store (저장소) 생성


1. Store 란?

StoreFeature 정보를 참조할 수 있는 다양한 Source 들을 의미한다.
SourcePostGIS , ShapeFile 등 다양한 형태로 존재하지만,
Geoserver 내에서는 이런 것들을 모두 Store 라는 추상화된 단위로서 관리하게 된다.


2. 생성 방법

  • Workspace : 우리가 앞서 생성한 Workspace 를 지정한다.
  • Data Source Name : Geoserver 에서 사용할 Store 의 명칭을 지정한다.
    • 참고로 같은 WorkSpace 에 같은 DataSource Name 을 중복 지정할 수 없다.
  • 이외의 Connection Parameters 영역의 내용은 DB connection 의 정보를 입력하면 된다.
    • 여기서 봐둘 건, data store 가 하나의 schema 에 대해서만 참조한다는 점이다.
    • 이런 이유로 여러 schema 가 분산되어 있다면 data store 도 여러개 생성해야 한다.
  • 마지막으로 Save 버튼 클릭한다.

  • 이후에 목록 화면에서 검색해보면 Store (저장소) 가 무사히 생성된 것을 알 수 있다.




🗺️ Layer (레이어) 발행


1. Layer 란?

Geoserver 에서 지도 정보를 공유하기 위한 단위이며,
동시에 지도 Feature 정보를 나타내는 raster, vector 데이터의 집합이다.
각 Layer 는 실질적인 Feature 의 출처인 Store 를 기반으로 생성된다.


2. Layer 발행

  • 앞서 생성한 Data Store 의 명칭을 검색 및 선택한다.

  • 앞서 생성한 Store(저장소) 에 있는 Geometry 컬럼을 갖는 테이블 이 존재한다면 위 그림처럼 목록에 표출이 된다. 표출된 목록 오른쪽의 Publish 버튼을 클릭하여 Layer 를 발행하자.

참고:
혹시 테스트를 위한 PostgreSQL Feature Table 를 간단하게 생성하고 싶다면
제가 이전에 작성한 이 게시물을 따라해보자. QGIS 만 있으면 쉽게 따라할 수 있다.


  • 화면에 들어오면 여러가지 설정을 할 수 있는 입력란이 있지만 필수적인 것만 지정하고 넘어가도 된다.
  • 위 그림의 번호가 찍힌 곳을 순서대로 클릭만 해도 기본적인 설정을 끝내고 Layer 발행을 완료할 수 있다.

  • 마지막으로 Layers 메뉴의 목록화면에서 검색해보면, 우리가 앞서 발행한 Layer 가 보인다.
  • 여기서 중요하게 봐야 될 것은 Name 이다.
    • Name 을 자세히 보면 {namespace 명칭}:{Layer 명칭} 의 형태라는 것을 알 수 있다.
    • 이 덕분에 Layer 는 같은 이름을 가져도 서로 다른 namespace 를 기반으로 생성되면
      구별되어 사용할 수 있다.
    • 레이어에 대한 조회 작업을 할 때에도 특정 레이어를 타겟팅할 때 이 Name 을 사용한다.




🔍 생성한 Layer 조회


뭘하든 그렇지만 뭔가를 만들어봤으면 어떤 형태로든 테스트를 해봐야 한다고 난 생각한다.
지금 만든 Layer 또한 그렇다. 여기서는 Layer 의 조회여부만 확인하는 걸로 간단하게 테스트하겠다.
다만 조회 방식을 2가지로 나눠서 설명하겠다.

  • GeoServer - Layer Preview 기능을 통한 조회 방법
  • QGISWMS Layer 등록 기능을 통한 조회 방법



1. GeoServer 조회

가장 쉬운 조회 방법이 아닐까 생각한다. 아래 그림을 보면서 따라해보자.



2. QGIS 조회

"굳이 QGIS 까지 써서 조회를 해야하나?" 싶을 수도 있다.
하지만 일을 하다보니 알았는데, GeoServer 에 올린 Layer 의 디자인을 수정하고
이를 실제 Postgresql DB Layer 와 빠르게 비교할 때는 이 방법이 유용했다.
아무튼 알아서 나쁠 건 없다.


  • 좌측 Browser 영역에서 WMS/WMTS 에 마우스 오른쪽 클릭하고 New Connection 을 클릭한다.
  • 팝업창이 뜨면 내용을 채운다.
    • Name : Browser 영역에서 보일 Connection 의 명칭
    • URL: WMS 요청 URL 을 지정한다.
      • 중요! url 의 중간에 namespace 를 정확히 명시해줘야 한다.
      • ex) http://localhost:8080/geoserver/{namespace 명칭 작성}/wms
    • Authentication 하단의 Basic 탭을 클릭하고, GeoServer id/pw 를 입력한다.
  • 마지막으로 OK 버튼 클릭하면 끝이다.



  • 얼마 안 가서 위와 같은 팝업이 뜬다. OK 를 클릭하고 무시하자.



(이미지를 클릭하면 더 크게 보입니다)

  • 이전에 안 보이던 WMS/WMTS 하단에 앞서 만든 connection 정보가 보인다.
  • 아래로 계속 펼쳐보면 우리가 앞서 발행한 layer 도 보인다.
  • 해당 layer 를 꾹 클릭하고, 끌어당겨서 Layers 영역에 놓아준다. (드래그 & 드롭)
  • 일정 시간이 지난 후에 오른쪽 지도에 우리가 만든 Layer 가 보인다.




✨ 참고 링크

만약에 Workspace, Store, Layer 에 대한 더 상세한 설정을 알고 싶다면
Geoserver 에서 제공하는 문서를 보는 게 좋다. 아래 링크를 남겨둔다.

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

2개의 댓글

comment-user-thumbnail
2023년 5월 20일

gis 처음 배우고 있는 신입 프론트인데 포스팅 글 보면서 많은 도움 받았어요! 감사합니다:)

1개의 답글