From 7f10e20a413534178feb1f264841cb55c1b22471 Mon Sep 17 00:00:00 2001 From: mind-one001 Date: Wed, 7 Oct 2026 15:03:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EA=B5=AD=20=EC=A7=80=EB=8F=84=20?= =?UTF-8?q?=EB=B3=B4=EC=9D=B4=EA=B2=8C=20=EC=A4=8C=20=EB=A0=88=EB=B2=A8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(map-layout)/map/model/map-constants.ts | 2 ++ .../(map-layout)/map/ui/map-page-client.tsx | 1 + .../001-fe-SN-남한전체축소-수정결과.md | 31 +++++++++++++++++++ .../business_components/src/ui/map/Gis.js | 3 ++ 4 files changed, 37 insertions(+) create mode 100644 apps/sn/docs/작업계획/SN-관망도전체범위/001-fe-SN-남한전체축소-수정결과.md diff --git a/apps/sn/app/(map-layout)/map/model/map-constants.ts b/apps/sn/app/(map-layout)/map/model/map-constants.ts index c93fd11c5..5e8ff7a81 100644 --- a/apps/sn/app/(map-layout)/map/model/map-constants.ts +++ b/apps/sn/app/(map-layout)/map/model/map-constants.ts @@ -25,6 +25,8 @@ export const EXMN_PROC_SEARCH_EVENT = "SN_INFTWT_PROC_SEARCH"; // 지반침하 지도 포인트와 같은 파란 계열의 기존 레이어 트리 심볼 자산을 재사용한다. export const SINKHOLE_TREE_ICON_NAME = "SN_SINKHOLE_SPOT_BLUE.png"; +// EPSG:5179의 남한·도서 주변 여유 범위 [minX, minY, maxX, maxY]. +// 화면 비율 때문에 전체 범위가 잘리지 않도록 Gis의 viewShowFullExtent와 함께 사용한다. export const SOUTH_KOREA_VIEW_EXTENT: [number, number, number, number] = [ 600000, 1300000, 1500000, 2500000, ]; diff --git a/apps/sn/app/(map-layout)/map/ui/map-page-client.tsx b/apps/sn/app/(map-layout)/map/ui/map-page-client.tsx index fd2f012ef..a5943dede 100644 --- a/apps/sn/app/(map-layout)/map/ui/map-page-client.tsx +++ b/apps/sn/app/(map-layout)/map/ui/map-page-client.tsx @@ -3335,6 +3335,7 @@ const MapPageClient = () => { defaultZoom={7.5} defaultLonLat={[129, 36.3]} viewExtent={SOUTH_KOREA_VIEW_EXTENT} + viewShowFullExtent={true} /> {isAgedPipeListMinimized && (
diff --git a/apps/sn/docs/작업계획/SN-관망도전체범위/001-fe-SN-남한전체축소-수정결과.md b/apps/sn/docs/작업계획/SN-관망도전체범위/001-fe-SN-남한전체축소-수정결과.md new file mode 100644 index 000000000..ae3a6b5e7 --- /dev/null +++ b/apps/sn/docs/작업계획/SN-관망도전체범위/001-fe-SN-남한전체축소-수정결과.md @@ -0,0 +1,31 @@ +# 관망도 남한 전체 축소 표시 + +- 작업일: 2026-10-07 +- 목적: 최소 줌을 낮춰도 지정 영역 제한 때문에 남한 전체까지 축소되지 않는 현상 보완. +- 근거: 사용자 요청. 화면설계서 7번 SN_MN010101의 하수관망도, 요구사항정의서 기능 추적표 97~100행(PR-SN-030)을 확인했다. 해당 원본에는 정확한 줌/좌표 제한값이 없으므로 이번 값은 원본 요구사항으로 주장하지 않는다. + +## 수정 + +| 파일 | 내용 | +| --- | --- | +| app/(map-layout)/map/model/map-constants.ts | SOUTH_KOREA_VIEW_EXTENT의 좌표계·용도 주석 추가. 기존 좌표 유지 | +| app/(map-layout)/map/ui/map-page-client.tsx | Gis에 viewShowFullExtent=true 전달 | +| packages/common/business_components/src/ui/map/Gis.js | 선택 속성을 View.showFullExtent에 연결. 기본 false로 다른 앱의 기존 동작 유지 | + +범위는 EPSG:5179 `[600000, 1300000, 1500000, 2500000]`이다. 이 범위에는 남한이 포함되어 있으나, OpenLayers의 기본 extent 제약은 화면 가로·세로 중 어느 방향도 범위 밖으로 나가지 못하도록 축소를 제한한다. showFullExtent는 지정 영역 전체가 보이도록 한 축의 화면이 범위를 넘는 축소를 허용한다. 영역을 무제한으로 확장하거나 minZoom을 무시하는 설정이 아니다. + +## 검증 + +- 사용자 SN 개발서버 3002(PID 69796)를 유지하고 HMR로 검증했다. 서버 재시작과 Next build는 수행하지 않았다. +- 기존 Chrome 탭 연결은 시간 초과하여 별도 인앱 브라우저 검증 탭을 사용했다. +- localhost:3002에서 승인된 테스트 계정으로 로그인 후 관망도 진입. +- 1280×720 브라우저에서 축소 버튼으로 줌 7.5 → 6.5 → 6.0 이동 확인. +- 줌 6.0에서 남한 본토, 제주도와 울릉도·독도가 함께 보이는 화면을 확인했다. 레이어 패널과 분석도구 패널을 유지한 상태다. +- git diff --check 통과. 기존 배경지도 타일의 모든 외부 네트워크 요청, 전체 업무 API 및 다른 화면 회귀까지 검증한 것은 아니다. + +## 영향 및 롤백 + +- API/DB/레이어 검색·조회조건 변경 없음. 초기 줌 7.5와 중심좌표는 유지한다. +- 다른 앱은 선택 속성을 전달하지 않으므로 기존 기본값 false를 유지한다. +- 롤백은 이번 선택 속성 전달과 View 연결, 설명 주석만 제거한다. 사용자 변경이나 공통 minZoom은 되돌리지 않는다. +- 별도 테스트 파일·캡처 파일을 생성하지 않았다. 최종 문서만 보존하며 검증용 브라우저 탭은 종료한다. diff --git a/packages/common/business_components/src/ui/map/Gis.js b/packages/common/business_components/src/ui/map/Gis.js index 823a9b7ca..f7bd71ec6 100644 --- a/packages/common/business_components/src/ui/map/Gis.js +++ b/packages/common/business_components/src/ui/map/Gis.js @@ -84,6 +84,8 @@ function Gis({ defaultLonLat = [127.4875, 37.4916], viewExtent, viewMinZoom, + // 지정 범위 전체까지 축소를 허용한다. 기본값은 기존 타 앱의 범위 제한을 유지한다. + viewShowFullExtent = false, showZoomLevel = false, toolBarIconSize, zoomGuide, @@ -176,6 +178,7 @@ function Gis({ minZoom: viewMinZoom ?? gisCore.defaults.minZoom, maxZoom: gisCore.defaults.maxZoom, extent: viewExtent, + showFullExtent: viewShowFullExtent, }), }); } else {