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(); + } + } + // ▲▲▲ 레이어가 활성화되었을 때만 클릭 컨트롤 작동 ▲▲▲ } //물리탐사 - 굴절법탄성파