업무 레이어 관리 기능은 2D 지도에서 표시, 검색, 편집, 다운로드할 업무 레이어 메타데이터를 등록, 조회, 수정, 삭제하기 위해 사용한다. 업무 레이어명, 물리 레이어명, 서비스명, 스타일명, 분류 코드, 좌표계, 공간유형을 관리하며 SHP 업로드 레이어와 지도 편집 기능의 기준정보로 사용된다.
| Action URL | Controller method | QueryID |
|---|---|---|
조회 /gis/tasklayer/taskLayerList.do |
TaskLayerPageController.taskLayerList |
selectTaskLayerList, selectTaskLayerListCnt |
조회 /api/v1/tasklayer/list |
TaskLayerApiController.getTaskLayerList |
selectTaskLayerList, selectTaskLayerListCnt |
지도조회 /api/v1/layer/task |
LayerApiController.getTaskLayerList |
selectTaskLayerList, selectTaskLayerListTotCnt |
등록화면 /gis/tasklayer/taskLayerRegist.do |
TaskLayerPageController.taskLayerRegist |
N/A |
목록선택 /gis/tasklayer/taskLayerDetail.do?taskLyrId={taskLyrId} |
TaskLayerPageController.taskLayerDetail |
selectTaskLayerDetail |
업무 레이어 목록은 페이징 조회되며 검색조건은 레이어명 또는 레이어 ID, 그룹코드, 공간유형 등에 대해 수행된다. 지도 화면의 레이어 추가 도구는 별도 공통 API인 /api/v1/layer/task를 사용한다. 목록 정렬은 task_lyr_sort_seq를 우선하고 값이 없으면 업무 레이어 ID 순서를 따른다.

조회 : 검색조건을 입력한 뒤 조회 버튼을 클릭하여 업무 레이어 목록을 조회한다.
등록 : 등록 버튼을 클릭하여 업무 레이어 등록 화면으로 이동한다.
상세 : 목록의 상세 버튼을 클릭하여 업무 레이어 상세조회 화면으로 이동한다.
수정 : 목록의 수정 버튼을 클릭하여 업무 레이어 수정 화면으로 이동한다.
삭제 : 목록의 삭제 버튼을 클릭하여 업무 레이어 삭제를 수행한다.
| Action URL | Controller method | QueryID |
|---|---|---|
상세조회 /gis/tasklayer/taskLayerDetail.do?taskLyrId={taskLyrId} |
TaskLayerPageController.taskLayerDetail |
selectTaskLayerDetail |
상세조회 /api/v1/tasklayer/{taskLyrId} |
TaskLayerApiController.getTaskLayer |
selectTaskLayerDetail |
수정화면 /gis/tasklayer/taskLayerModify.do?taskLyrId={taskLyrId} |
TaskLayerPageController.taskLayerModify |
selectTaskLayerDetail |
업무 레이어 상세조회 화면은 업무 레이어 ID 기준 단건 정보를 조회하며 물리 레이어명, 서비스명, 분류 코드, 좌표계, 공간유형을 확인할 수 있다.

목록 : 업무 레이어 목록조회 화면으로 이동한다.
수정 : 수정 버튼 클릭 시 업무 레이어 수정 화면으로 이동한다.
삭제 : 삭제 버튼 클릭 시 삭제 여부를 확인한 뒤 삭제 처리한다.
| Action URL | Controller method | QueryID |
|---|---|---|
등록화면 /gis/tasklayer/taskLayerRegist.do |
TaskLayerPageController.taskLayerRegist |
N/A |
저장 /api/v1/tasklayer |
TaskLayerApiController.createTaskLayer |
insertTaskLayer |
SHP 업로드 /api/v1/tasklayer/upload/shp |
TaskLayerApiController.uploadShapefile |
insertTaskLayer |
업무 레이어 등록 화면에서는 업무 레이어명, 설명, 물리 레이어명, 서비스 prefix, 서비스명, 스타일명, 분류 코드, 좌표계, 공간유형을 입력해 저장한다.
.shp, .shx, .dbf 파일이 필요하다.afgis.ul_{uuid12} 형태의 물리 테이블을 생성하고 afgis.task_lyr에 메타데이터를 등록한다.
목록 : 업무 레이어 목록조회 화면으로 이동한다.
저장 : 입력한 업무 레이어 정보를 저장 처리한다.
| Action URL | Controller method | QueryID |
|---|---|---|
수정화면 /gis/tasklayer/taskLayerModify.do?taskLyrId={taskLyrId} |
TaskLayerPageController.taskLayerModify |
selectTaskLayerDetail |
수정 /api/v1/tasklayer/{taskLyrId} |
TaskLayerApiController.updateTaskLayer |
selectTaskLayerDetail, updateTaskLayer |
업무 레이어 수정 화면에서는 기존 업무 레이어 정보를 조회한 뒤 수정 저장한다. 업무 레이어 ID는 URL의 taskLyrId 기준으로 고정된다.
lyrPhysNm이 schema.table 형식이어야 한다.
목록 : 업무 레이어 목록조회 화면으로 이동한다.
저장 : 수정한 업무 레이어 정보를 저장 처리한다.
| Action URL | Controller method | QueryID |
|---|---|---|
삭제 /api/v1/tasklayer/{taskLyrId} |
TaskLayerApiController.deleteTaskLayer |
selectTaskLayerDetail, deleteTaskLayer |
업무 레이어 삭제는 목록조회 화면 또는 상세조회 화면에서 수행할 수 있다. 삭제 전 존재 여부를 확인한다.
lyrSrvcPrefix=upload인 업로드 레이어를 삭제하면 메타데이터 삭제 후 업로드 시 생성된 물리 테이블도 DROP TABLE IF EXISTS로 정리한다.schema.table 정규식에 맞아야 삭제할 수 있다.선택 : 목록 화면의 삭제 버튼 또는 상세 화면의 삭제 버튼을 선택한다.
삭제 : 삭제 확인 후 업무 레이어 정보를 삭제 처리한다.
| Action URL | Controller method | QueryID |
|---|---|---|
지도 목록조회 /api/v1/layer/task |
LayerApiController.getTaskLayerList |
selectTaskLayerList, selectTaskLayerListNotInGroupCd, selectTaskLayerListTotCnt, selectTaskLayerListNotInGroupCdTotCnt |
피처조회 /api/v1/layer/task/{taskLayerId}/features |
LayerApiController.getTaskLayerFeatures |
Provider SQL |
속성스키마 조회 /api/v1/layer/task/{taskLayerId}/properties |
LayerApiController.getTaskLayerProperties |
selectTablePropertyColumns |
업로드 피처조회 /api/v1/tasklayer/{taskLyrId}/features |
TaskLayerApiController.getUploadedTaskLayerFeatures |
Dynamic SQL |
편집저장 /api/v1/layer/edit |
LayerApiController.editLayer |
Provider SQL |
G2F 호환 편집저장 /cmm/g2f/layer/edit |
G2FLayerCompatController.editLayer |
Provider SQL |
2D 지도 도구는 업무 레이어 메타데이터를 조회한 뒤 WMS, WFS 또는 DB fallback 방식으로 지도에 표시한다. 로컬 Docker 기준 WMS/WFS는 GeoServer MapPrimeServer 컨텍스트의 /wms, /wfs 엔드포인트를 사용하며 기본 workspace/prefix는 afias다. 편집은 LayerEditRequestDTO의 added, modified, deleted 변경 목록을 통합 처리한다.
app.gis.layer-service.database.enabled가 켜져 있어야 사용할 수 있다.EPSG:3857이다.LayerType.TASK 기준으로 구현되어 있다.gid IN (...) 기준 하드 삭제다.geom을 제외한 물리 컬럼을 반환하며 gid, biz_id는 표시하되 직접 수정하지 않는다.frst_reg_id, frst_reg_dt, last_mdfcn_id, last_mdfcn_dt 같은 감사 컬럼은 편집 화면에서 숨긴다.| 유형 | 대상소스명 | 비고 |
|---|---|---|
| Controller | src/main/java/allforland/gis/tasklayer/web/TaskLayerPageController.java |
업무 레이어 관리 화면 요청을 처리하는 컨트롤러 클래스 |
| API Controller | src/main/java/allforland/gis/tasklayer/web/TaskLayerApiController.java |
업무 레이어 관리 및 업로드 API 요청을 처리하는 컨트롤러 클래스 |
| API Controller | src/main/java/allforland/gis/layer/web/LayerApiController.java |
지도 표시/편집용 업무 레이어 API 요청을 처리하는 컨트롤러 클래스 |
| API Controller | src/main/java/allforland/gis/layer/web/G2FLayerCompatController.java |
기존 G2F 편집 API 호환 요청을 처리하는 컨트롤러 클래스 |
| Service | src/main/java/allforland/gis/tasklayer/service/TaskLayerService.java |
업무 레이어 관리를 위한 서비스 인터페이스 |
| ServiceImpl | src/main/java/allforland/gis/tasklayer/service/impl/TaskLayerServiceImpl.java |
업무 레이어 관리를 위한 서비스 구현 클래스 |
| Service | src/main/java/allforland/gis/tasklayer/service/TaskLayerUploadService.java |
SHP 업로드를 위한 서비스 인터페이스 |
| ServiceImpl | src/main/java/allforland/gis/tasklayer/service/impl/TaskLayerUploadServiceImpl.java |
SHP 업로드를 위한 서비스 구현 클래스 |
| Service | src/main/java/allforland/gis/layer/service/LayerService.java |
지도 표시/편집을 위한 서비스 인터페이스 |
| ServiceImpl | src/main/java/allforland/gis/layer/service/impl/LayerServiceImpl.java |
지도 표시/편집을 위한 서비스 구현 클래스 |
| Mapper | src/main/java/allforland/gis/tasklayer/mapper/TaskLayerMapper.java |
업무 레이어 관리 Mapper 인터페이스 |
| Mapper | src/main/java/allforland/gis/layer/mapper/LayerMapper.java |
지도 조회 Mapper 인터페이스 |
| SQL Provider | src/main/java/allforland/gis/layer/mapper/LayerSqlProvider.java |
지도 피처 조회/편집 동적 SQL Provider |
| VO | src/main/java/allforland/gis/tasklayer/vo/TaskLayerVO.java |
업무 레이어 정보를 담는 VO 클래스 |
| Search VO | src/main/java/allforland/gis/tasklayer/vo/TaskLayerSearchVO.java |
업무 레이어 목록 검색 조건 VO 클래스 |
| DTO | src/main/java/allforland/gis/tasklayer/web/dto/TaskLayerRequestDTO.java |
업무 레이어 등록/수정 요청 DTO 클래스 |
| DTO | src/main/java/allforland/gis/layer/vo/LayerEditRequestDTO.java |
지도 편집 요청 DTO 클래스 |
| DTO | src/main/java/allforland/gis/layer/vo/LayerEditResultVO.java |
지도 편집 결과 VO 클래스 |
| JSP | src/main/webapp/WEB-INF/jsp/gis/tasklayer/taskLayerList.jsp |
업무 레이어 목록조회를 위한 JSP 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/gis/tasklayer/taskLayerDetail.jsp |
업무 레이어 상세조회를 위한 JSP 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/gis/tasklayer/taskLayerRegist.jsp |
업무 레이어 등록을 위한 JSP 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/gis/tasklayer/taskLayerModify.jsp |
업무 레이어 수정을 위한 JSP 페이지 |
| Query XML | src/main/resources/mapper/tasklayer/TaskLayerMapper.xml |
업무 레이어 관리 Query XML |
| Query XML | src/main/resources/mapper/layer/LayerMapper.xml |
지도 표시용 Query XML |
| SQL | docker/postgres/init/03-gis-schema.sql |
업무 레이어 테이블과 샘플 물리 테이블 생성을 위한 스키마 SQL |
| SQL | docker/postgres/init/04-gis-data.sql |
업무 레이어 기본데이터 적재 SQL |
| Provision | docker/geoserver/provision/provision.sh |
로컬 GeoServer workspace, datastore, 샘플 레이어, SLD 스타일 생성 |
| Style | docker/geoserver/provision/styles/*.sld |
샘플 업무 레이어 GeoServer 스타일 |

| 테이블명 | 테이블명(영문) | 비고 |
|---|---|---|
| 업무 레이어 | afgis.task_lyr |
업무 레이어 메타데이터를 관리하는 기준 테이블 |
| 업무 레이어 포인트 샘플 | afgis.tb_task_layer_point_sample |
포인트형 업무 레이어 샘플 물리 테이블 |
| 업무 레이어 라인 샘플 | afgis.tb_task_layer_line_sample |
라인형 업무 레이어 샘플 물리 테이블 |
| 업무 레이어 폴리곤 샘플 | afgis.tb_task_layer_polygon_sample |
폴리곤형 업무 레이어 샘플 물리 테이블 |
| 업로드 업무 레이어 | afgis.ul_{uuid12} |
SHP ZIP 업로드 시 동적으로 생성되는 물리 테이블 |