From 744c2c42bd98eef1169984a24952f719efc2ace0 Mon Sep 17 00:00:00 2001 From: thkim Date: Tue, 27 Jan 2026 15:52:28 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=ED=86=B5=EC=9E=90=EB=A3=8C=20?= =?UTF-8?q?=EB=AC=BC=EB=A6=AC=ED=83=90=EC=82=AC=20=ED=81=B4=EB=A6=AD?= =?UTF-8?q?=EC=8B=9C=20=EC=9C=A0=ED=86=B5=EC=84=9C=EC=8B=9D=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EA=B2=8C=20=ED=91=9C=EC=B6=9C=EB=90=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/js/map/main/map.js | 53 +++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/js/map/main/map.js b/src/main/webapp/js/map/main/map.js index 1393fd7f..ef15e08a 100644 --- a/src/main/webapp/js/map/main/map.js +++ b/src/main/webapp/js/map/main/map.js @@ -620,6 +620,7 @@ var STEEP_SLOPE_LAYER; // 급경사지 레이어 var CTL_SELECT_SLOPE; // 급경사지 선택 var RESISTIVITY_LAYER; // 물리탐사 - 전기비저항 +var CTL_SELECT_RESISTIVITY; // 물리탐사 - 전기비저항 클릭 var REFRACTION_LAYER; // 물리탐사 - 굴절법탄성파 @@ -977,6 +978,36 @@ function initApp(param){ REFRACTION_LAYER.setVisibility(false); + + // ▼▼▼ 클릭 이벤트 처리를 위한 컨트롤 추가 ▼▼▼ + // 1. 컨트롤 생성 (initMap 함수 내부) + CTL_SELECT_RESISTIVITY = new OpenLayers.Control.WMSGetFeatureInfo({ + url: O2MAP_URL, + crs: "EPSG:3857", + infoFormat: "application/json", + layers: [RESISTIVITY_LAYER], + queryVisible: true, + maxFeatures: 1 + }); + + // 2. 이벤트 리스너: 클릭 시 PROJECT_CODE를 alert으로 띄움 + CTL_SELECT_RESISTIVITY.events.register("getfeatureinfo", CTL_SELECT_RESISTIVITY, function(evt) { + if (evt.text.length > 50) { + var values = JSON.parse(evt.text); + if(values.features && values.features.length > 0) { + var props = values.features[0].properties; + var projectCode = props.PROJECT_CODE || props.project_code; + if(projectCode) { + console.log("선택된 PROJECT_CODE: " + projectCode); + previewClipReport('TBL_RESISTIVITY_SURVEY', projectCode,'') + } + } + } + }); + // ▲▲▲ 클릭 이벤트 처리를 위한 컨트롤 추가 ▲▲▲ + + BASE_MAP.addControl(CTL_SELECT_RESISTIVITY); + /* if( getQueryString("masterCompanyCode") && true ) { HOLE_DRILLING = new OpenLayers.Layer.WMS( @@ -6557,7 +6588,27 @@ function geologyResistivitySurvey() { var liEleId = undefined; var layerName = '물리탐사 - 전기저항'; var message = '물리탐사 - 전기저항 정보는 빨간색 선으로 보여집니다.'; - toggleOverlayLayer(liEleId, layerName, RESISTIVITY_LAYER, message); + toggleOverlayLayer(liEleId, layerName, RESISTIVITY_LAYER, message); + + // ▼▼▼ 레이어가 활성화되었을 때만 클릭 컨트롤 작동 ▼▼▼ + if (RESISTIVITY_LAYER.getVisibility()) { + console.log("[DEBUG] RESISTIVITY_LAYER is now VISIBLE."); + + // 1. 다른 벡터 레이어보다 위로 오도록 순서 조정 (클릭 방해 방지) + RESISTIVITY_LAYER.setZIndex(1001); + + // 2. 컨트롤 활성화 + if(window.CTL_SELECT_RESISTIVITY) { + CTL_SELECT_RESISTIVITY.activate(); + console.log("[DEBUG] CTL_SELECT_RESISTIVITY Activated."); + } + } else { + console.log("[DEBUG] RESISTIVITY_LAYER is now HIDDEN."); + if(window.CTL_SELECT_RESISTIVITY) { + CTL_SELECT_RESISTIVITY.deactivate(); + } + } + // ▲▲▲ 레이어가 활성화되었을 때만 클릭 컨트롤 작동 ▲▲▲ } //물리탐사 - 굴절법탄성파