logo

𝝅번째 알파카의 개발 낙서장

screen

OpenLayers를 여행하는 개발자를 위한 안내서 - 22. WFS Transaction으로 데이터 삭제하기

projects

GIS

시리즈 톺아보기

OpenLayers를 여행하는 개발자를 위한 안내서

OpenLayers를 여행하는 개발자를 위한 안내서
count

개요 🔗

세 가지 WFS Transaction API 중, 마지막 단계로 데이터 삭제에 대해 다뤄보자.




공간정보 데이터 삭제하기 🔗

WFS Transaction 프로토콜을 활용하면, 공간정보 데이터를 DB가 아닌 웹/앱 등 API 호출이 가능한 다양한 환경에서 데이터를 수정할 수 있다.

본 문서에서의 처리 방식은 아래와 같다.

  1. 객체를 클릭하면 나타나는 Overlay 안의 삭제 버튼을 클릭한다.


1. WFS Transaction Delete URL 구성하기 🔗

TXT

0POST https://example.com/geoserver/wfs

XML

0<wfs:Transaction
1 xmlns:wfs="http://www.opengis.net/wfs"
2 xmlns:ogc="http://www.opengis.net/ogc"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 service="WFS"
5 version="1.0.0"
6 xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd">
7 <wfs:Delete typeName="layer_name">
8 <ogc:Filter>
9 <ogc:FeatureId fid="layer_name.66" />
10 </ogc:Filter>
11 </wfs:Delete>
12</wfs:Transaction>

이전까지의 API 호출은 모두 GET으로 이루어졌지만, WFS Transaction의 모든 요청은 POST로 이루어진다. 요청의 body에 위 XML 양식을 입력하여 추가할 데이터를 선언할 수 있다.

  • 대상 테이블은 layer_name이다.
    • wfs:Update 태그의 프로퍼티 typeName으로 명시한다.
  • 조건은 ogc:Filter 태그로 명시하며, OGC Filter 스펙을 따른다.

데이터를 삭제하는 기능이므로, 별도의 공간정보 데이터는 필요없고 조건만 잘 넣으면 삭제된다.




예제 확인하기 🔗

image

OpenLayers6 Sandbox - WFS Transaction Delete에서 이를 구현한 예제를 확인할 수 있다.