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

⏰ 2022-05-31 (화) 01:46:17

screener
시리즈 모아보기
OpenLayers를 여행하는 개발자를 위한 안내서

22 / 26

Table of Contents

  • 1. 개요




개요

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




공간정보 데이터 삭제하기

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

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

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


1. WFS Transaction Delete URL 구성하기

TXT

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

XML

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

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

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

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




예제 확인하기

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


🏷️ 태그
# GIS
# GeoServer
# OpenLayers
# WFS

읽어주셔서 고마워요!

도움이 되셨다면, 공감이나 댓글을 달아주시는 건 어떤가요?

블로그 운영에 큰 힘이 됩니다.

https://hits.seeyoufarm.com/api/count/incr/badge.svg?count_bg=%23484848&icon=react.svg&icon_color=dodgerblue&title=view&title_bg=%23242424&url=https%3A%2F%2Fblog.itcode.dev%2Fprojects%2F2022%2F05%2F31%2Fgis-guide-for-programmer-22