28.2.4. 오프라인 편집 작업 플러그인
데이터를 수집하는 경우, 현장에서 노트북 또는 휴대폰으로 오프라인 작업을 해야 하는 일이 흔합니다. 다시 온라인에 접속할 때, 오프라인에서 변경한 내용을 마스터 데이터소스(예: PostGIS 데이터베이스)와 동기화해야 합니다. 여러 사람이 동일한 데이터셋을 동시에 작업하고 있다면, 사람들이 동일한 객체를 변경하지 않았다고 해도 편집 내용을 수작업으로 합치기란 어려운 일입니다.
Offline Editing 플러그인은 데이터소스의 콘텐츠를 SpatiaLite 또는 GeoPackage 데이터베이스로 복사해서 전용 테이블에 오프라인 편집 내용을 저장함으로써 동기화를 자동화합니다. 다시 네트워크에 연결한 다음 마스터 데이터셋에 오프라인 편집 내용을 적용할 수도 있습니다.
플러그인을 사용하려면:
벡터 레이어 (예를 들면 ESRI Shapefile, PostGIS 또는 WFS-T 데이터소스) 몇 개를 가진 프로젝트를 여십시오.
사용자가 이미 플러그인을 활성화했다고 가정합니다. (핵심 및 외부 플러그인 참조) Convert to offline project 메뉴 옵션을 선택하십시오. 오프라인 프로젝트 생성 대화창이 열립니다.
Storage type 옵션에서 저장소 유형을 선택하십시오. GeoPackage 또는 SpatiaLite 데이터베이스 유형을 선택할 수 있습니다.
Browse 버튼을 통해 Offline data 를 저장할 데이터베이스의 위치를 지정하십시오. 기존 파일일 수도 있고 새로 생성할 수도 있습니다.
Select remote layers 부분에서 저장하려는 레이어를 체크하십시오. 해당 레이어의 내용이 데이터베이스 테이블에 저장됩니다.
참고
대상 데이터베이스 포맷이 목록을 네이티브하게 지원하지 못 하기 때문에, 오프라인 편집 작업 플러그인이 {string, number} 목록 필드를 문자열 필드로 변환합니다. 이때 값을 쉼표로 구분합니다. 이렇게 하면 오프라인 시 이런 필드의 내용을 읽고 편집할 수 있게 됩니다.
원본 레이어와 오프라인 레이어로부터 나온 필드들을 둘 다 처리하고자 하는 경우, try() and array 표현식 함수를 사용하면 됩니다. 다음은 그 예시입니다:
try(array_contains("field",1),array_contains(string_to_array("field"),1))
Only synchronize selected features if a selection is present 옵션을 체크해서 하위 집합(subset)에 대해서만 오프라인 편집 작업 및 저장을 할 수 있도록 설정할 수 있습니다. 대용량 레이어의 경우 이 옵션을 항상 활성화하는 편이 좋습니다.
끝났습니다!
사용자 프로젝트를 저장한 다음 현장에 가져가십시오.
오프라인에서 레이어를 편집하십시오.