thkim 2025-06-26 16:50:08 +09:00
parent 1d1636198e
commit f7954e7e87
23 changed files with 901 additions and 175 deletions

View File

@ -1,15 +1,10 @@
src\main\resources\egovframework\egovProps\globals.properties
#src\main\java\geoinfo\regi\manageList\ManageExcelUploadProc01Controller.java
#src\main\webapp\WEB-INF\views\web\input\excel_step00.jsp
#src\main\webapp\WEB-INF\views\web\input\excel_step31.jsp
#src\main\webapp\com\css\common.v2.0.css
#src\main\webapp\com\css\common.v2.0.css.map
#src\main\webapp\WEB-INF\views\web\manage\list_reg.jsp
#src\main\resources\egovframework\egovProps\globals.properties
src\main\webapp\com\css\common.v2.0.css
src\main\webapp\com\css\common.v2.0.css.map
src\main\webapp\js\map\main\section.js
src\main\webapp\web\rex\holeForMap.reb
src\main\webapp\WEB-INF\clipreport4\DataConnection.properties
src\main\webapp\WEB-INF\views\drilling\inquiry\drilling_inquiry_project.jsp
src\main\webapp\js\map\main\map.js
src\main\webapp\js\map\main\left\left.js
src\main\webapp\js\map\main\left\left_new.js
src\main\resources\egovframework\sqlmap\mapper\map\MapLeft_SQL.xml
src\main\resources\egovframework\sqlmap\mapper\drilling\home\DrillingHomeMapper.xml
src\main\webapp\WEB-INF\views\drilling\input\drilling_input.jsp
src\main\webapp\WEB-INF\views\drilling\inquiry\drilling_inquiry.jsp
src\main\resources\egovframework\sqlmap\mapper\drilling\input\DrillingInputMapper.xml

View File

@ -67,12 +67,12 @@ public class JusangdoController {
EgovMap result = jusangdoService.selectTblHeader(params);
if (result != null) {
String projectCode = (String)result.get("projectCode");
OOFFile file = oof.addFile("crf.root", realPath + File.separator + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
OOFFile file = oof.addFile("crf.root", realPath + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
file.addField("p_code", projectCode);
file.addField("h_code", holeCodeSplit[i]);
file.addField("server_ip", imagePath);
System.out.println("생성위치로그확인하기."+realPath + File.separator + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
System.out.println("생성위치로그확인하기."+realPath + "web" + File.separator + "rex" + File.separator + "holeForMap.reb");
System.out.println("p_code----------------->"+projectCode);
System.out.println("h_code----------------->"+holeCodeSplit[i]);
System.out.println("server_ip----------------->"+imagePath);

View File

@ -8,6 +8,7 @@ import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -54,6 +55,11 @@ import ictway.comm.util.strUtil;
import ictway.comm.web.WebUtil;
import ictway.whois.whoisSMS;
/**
*
* @author thkim
*
*/
@Controller
public class DrillingInputController {
@ -100,12 +106,9 @@ public class DrillingInputController {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
HashMap<String, Object> params = MyUtil.JSONObjectToHashMap( jsonObject );
try {
HashMap<String, Object> hashMap = drillingInputService.drillingInputAdd(request, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("v_RetCode"));
@ -237,5 +240,113 @@ public class DrillingInputController {
}
return null;
}
@RequestMapping(value = "/drilling/modify.do")
public String drillingModify(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("USERNAME") == null){
return "redirect:/index.do";
}
model.put("params", params);
return "/drilling/input/drilling_input";
}
/**
* method.
* @param request
* @param strJSON
* @param response
* @return
*/
@RequestMapping(value = "/drilling/input/modify.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject drillingInputModify(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
JSONObject jSONOResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"jstrJSON: \n" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
String failMsg = "";
try {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = MyUtil.JSONObjectToHashMap(jsonObject);
try {
HashMap<String, Object> hashMap = drillingInputService.drillingInputModify(request, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("v_RetCode"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("v_RetMsg"));
if( nRetCode == 100 ) {
jSONOResponse.put("resultCode", nRetCode);
jSONOResponse.put("result", "true");
jSONOResponse.put("message", "등록이 완료되었습니다.");
} else {
if( nRetCode == 11 ) {
lpszRetMsg += "\n" +
"사업명: " + params.get("constName");
}
jSONOResponse.put("resultCode", nRetCode);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", lpszRetMsg);
isFail = true;
failMsg = lpszRetMsg;
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"strJSON:[\n" + strJSON + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
}
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if( isFail ) {
jSONOResponse.put("resultCode", -2);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", failMsg);
}
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jSONOResponse;
}
}

View File

@ -14,4 +14,6 @@ public interface DrillingInputService {
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
}

View File

@ -2,17 +2,22 @@ package geoinfo.drilling.input.service.impl;
import geoinfo.drilling.input.service.DrillingInputMapper;
import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.main.login.service.LoginMapper;
import geoinfo.util.MyUtil;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@ -26,6 +31,8 @@ public class DrillingInputServiceImpl implements DrillingInputService {
@Resource(name="loginMapper")
private LoginMapper loginMapper;
@Autowired
DrillingInquiryService drillingInquiryService;
/**
* Gl Gm Gs Gf Codes
@ -193,4 +200,52 @@ public class DrillingInputServiceImpl implements DrillingInputService {
}
}
@Override
public HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params)
throws Exception {
// TODO Auto-generated method stub
String userId = (String)request.getSession().getAttribute("USERID");
params.put("CID", params.get("cid"));
JSONObject tempConstructSiteInfo = drillingInquiryService.drillingInquiryOneItem(request, params);
// JSONObject를 HashMap으로 변환
ArrayList<EgovMap> arrayList = (ArrayList<EgovMap>) MyUtil.JSONObjectToHashMap( tempConstructSiteInfo ).get("datas");
HashMap<String, Object> oldTempConstructSiteInfo = new HashMap<String, Object>(arrayList.get(0));
HashMap<String, Object> findConstCompanyCodeByConstCompanyNameParams = getOrganizationUserGlGmGsGfCodes(userId);
findConstCompanyCodeByConstCompanyNameParams.put("userId", userId);
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyOCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gl") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyTwCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gm") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyThCode", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gs") ));
findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyName", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gf") ));
try {
findConstCompanyCodeByConstCompanyNameParams.put("constCompanyName", params.get("constCompanyName"));
Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(findConstCompanyCodeByConstCompanyNameParams);
//spUdtTblCsiParams.put("constStartDate", params.get("constStartDate"));
//spUdtTblCsiParams.put("constStartDate", params.get("constStartDate"));
//spUdtTblCsiParams.put("constEndDate", params.get("constEndDate"));
HashMap<String, Object> spUdtTblCsiParams = (HashMap<String, Object>) params.clone();
spUdtTblCsiParams.put("constCompanyCode", constCompanyCode);
spUdtTblCsiParams.put("crtUserid", oldTempConstructSiteInfo.get("crtUserid"));
spUdtTblCsiParams.put("modUserid", userId);
spUdtTblCsiParams.put("userId", userId);
drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams);
return spUdtTblCsiParams;
} catch (SQLException e) {
throw new Exception( e.getMessage() );
}
}
}

View File

@ -95,13 +95,13 @@ public class DrillingInquiryController {
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
}
@ -146,6 +146,73 @@ public class DrillingInquiryController {
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
int contentLength = 0;
try {
contentLength = jSONOResponse.toJSONString().getBytes("UTF-8").length;
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setStatus(HttpServletResponse.SC_OK);
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json; charset=utf-8");
response.setContentLength(contentLength); // Content-Length 설정
try {
response.getWriter().print(jSONOResponse);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@RequestMapping(value = "/drilling/inquiry/one-item.do", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" })
@ResponseBody
public ResponseEntity<JSONObject> drillingInquiryOneItem (
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response
) {
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONObject jSONOResponse = null;
try {
jSONOResponse = drillingInquiryService.drillingInquiryOneItem( request, params );
} catch (Exception e) {
// TODO Auto-generated catch block
jSONOResponse = new JSONObject();
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +

View File

@ -13,6 +13,8 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
public interface DrillingInquiryService {
JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
JSONObject drillingInquiryOneItem(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> spGetProjectMbr(HttpServletRequest request, HashMap<String, Object> params, String userId) throws Exception;
List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
EgovMap getItemByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception;

View File

@ -1,5 +1,6 @@
package geoinfo.drilling.inquiry.service.impl;
import geoinfo.drilling.input.service.DrillingInputMapper;
import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryMapper;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
@ -31,6 +32,9 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@Resource(name="drillingInquiryMapper")
private DrillingInquiryMapper drillingInquiryMapper;
@Resource(name="drillingInputMapper")
private DrillingInputMapper drillingInputMapper;
@Autowired
DrillingInputService drillingInputService;
@ -231,6 +235,50 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
}
}
*/
@Override
public JSONObject drillingInquiryOneItem(HttpServletRequest request, HashMap<String, Object> params)
throws Exception {
JSONObject jsonResponse = new JSONObject();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String userId = MyUtil.getStringFromObject( request.getSession().getAttribute("USERID") );
if( userId == null){
throw new Exception( "로그인이 필요한 서비스입니다." );
}
List<EgovMap> datas = drillingInputMapper.sPGetTblCsiByCid(params);
for( EgovMap data : datas ) {
Long nConstCompanyCodeKey = MyUtil.getLongFromObject(data.get("constCompanyCode"));
if( nConstCompanyCodeKey != null ) {
params.put("constCompanyCode", nConstCompanyCodeKey);
String constCompanyName = drillingInquiryMapper.spGetConstCompanyName(nConstCompanyCodeKey);
data.put("constCompanyName", constCompanyName);
}
TIMESTAMP oracleTimestamp = (TIMESTAMP)data.get("crtDt");
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put("crtDt", formattedDate);
}
oracleTimestamp = (TIMESTAMP)data.get("modDt");
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put("modDt", formattedDate);
}
}
jsonResponse.put("datas", datas);
return jsonResponse;
}
@Override
@ -325,7 +373,7 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
"";
System.out.println(strTxt);
throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" );
}
}
}
@ -358,6 +406,8 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" );
}
}
}

View File

@ -639,7 +639,7 @@ public class MapInformationController {
public String getSichudanData(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
StringBuffer sb = request.getRequestURL();
String url = sb.substring(0, sb.lastIndexOf("/"));
url = "http://218.232.234.161/body/sichudan";
url = "http://218.232.234.161/body/sichudan ";
// url =
// request.getSession().getServletContext().getRealPath("/WEB-INF");

View File

@ -833,5 +833,19 @@ public final class MyUtil {
}
return clobData;
}
// JSONObject를 HashMap으로 변환
public static HashMap<String, Object> JSONObjectToHashMap( JSONObject jsonObject ) {
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
return params;
}
}

View File

@ -45,7 +45,7 @@
</select>
<select id="findConstCompanyCodeByConstCompanyName" parameterType="map" resultType="long">
SELECT SP_GET_CONST_COMPANY_CODE(#{constCompanyDept}) FROM dual
SELECT SP_GET_CONST_COMPANY_CODE(#{constCompanyName}) FROM dual
</select>
@ -82,6 +82,7 @@
<result property="resultCode" column="p_result_code" jdbcType="VARCHAR"/>
<result property="errMsg" column="p_err_msg" jdbcType="VARCHAR"/>
</resultMap>
<select id="spUdtTblCsi" parameterType="map" statementType="CALLABLE" resultMap="spUdtTblCsiResult">
{ CALL SP_UDT_TBL_CSI(
#{cid},

View File

@ -15,7 +15,7 @@
#{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyDept, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL
@ -26,7 +26,7 @@
SELECT * FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},#{constName, jdbcType=VARCHAR},#{constStartDate, jdbcType=VARCHAR},#{constEndDate, jdbcType=VARCHAR},#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},#{masterCompanyTwCode, jdbcType=VARCHAR},#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyDept, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL,
#{constCompanyName, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL,
2,2,#{nCount},#{nPage}))
</select>

View File

@ -79,14 +79,17 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
</ul>
<p class="check-title">기관명이 없을 시, 연락 바랍니다. 연락처: <span class="contact-tel">031-995-0934</span></p>
</div>
<button class="btn-green" type="button">엑셀자료입력</button>
<button class="btn-green btn-excel-download" type="button">엑셀 양식 다운로드</button>
<button class="btn-green" type="button" id="excel-input-btn">엑셀자료입력</button>
                        <button class="btn-green btn-excel-download" type="button" id="excel-download-btn">엑셀 양식 다운로드</button>
</div>
<div id="table-container">
</div>
<div class="">
<div class="bottom-buttons">
<button class="btn btn-plus" id="add-table" type="button"></button>
<button class="btn btn-minus" id="minus-table" type="button"></button>
<button class="btn-left btn-delete" id="btn-delete" type="button">
<span>삭제</span>
</button>
<button class="btn-green btn-save" id="btn-save" type="button">
<span>저장</span>
</button>
@ -106,6 +109,19 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<script type="text/javascript">
var tableId = 0;
function getQueryString(paramName) {
var searchString = decodeURI(window.location.search).substring(1),
i, val, params = searchString.split("&");
for (i = 0; i < params.length; i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return decodeURIComponent(unescape(val[1]));
}
}
return null;
}
function setName(inputValue, arrDistrict, index ) {
targetId = arrDistrict[index];
@ -208,7 +224,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<tr>
<th>건설사</th>
<td colspan="3">
<input type="text" value="" class="input-box information1" id="const-company-dept-` + tableId + `" placeholder="담당부서">
<input type="text" value="" class="input-box information1" id="const-company-dept-` + tableId + `" placeholder="건설사명">
<input type="text" value="" class="input-box information2" id="const-company-admin-` + tableId + `" placeholder="담당자">
<input type="text" value="" class="input-box information3" id="const-company-tel-` + tableId + `" placeholder="담당자 연락처">
<label class="check-box unselected-constructor-label" for="unselected-constructor-` + tableId + `"><input type="checkbox" id="unselected-constructor-` + tableId + `">
@ -225,6 +241,38 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
document.addEventListener('DOMContentLoaded', function() {
// 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리
const cid = getQueryString('CID');
if (cid) {
const excelInputBtn = document.getElementById('excel-input-btn');
const excelDownloadBtn = document.getElementById('excel-download-btn');
const addTableBtn = document.getElementById('add-table');
const minusTableBtn = document.getElementById('minus-table');
if (excelInputBtn) {
excelInputBtn.style.display = 'none';
}
if (excelDownloadBtn) {
excelDownloadBtn.style.display = 'none';
}
if (addTableBtn) {
addTableBtn.style.display = 'none';
}
if (minusTableBtn) {
minusTableBtn.style.display = 'none';
}
getOneItem(cid);
} else {
const btnDelete = document.getElementById('btn-delete');
if (btnDelete) {
btnDelete.style.display = 'none';
}
}
document.getElementById('add-table').addEventListener('click', function() {
addItem();
});
@ -242,6 +290,8 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
document.getElementById('btn-save').addEventListener('click', function() {
const cid = getQueryString('CID');
var tableDataElements = document.getElementsByClassName('table-data');
console.log(tableDataElements);
@ -288,10 +338,10 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
if (masterCompanyTelEle) {
jsonItem.masterCompanyTel = masterCompanyTelEle.value;
}
// 건설사 - 담당부서
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (i + 1));
if (constCompanyDeptEle) {
jsonItem.constCompanyDept = constCompanyDeptEle.value;
// 건설사 - 건설사명
var constCompanyNameEle = document.getElementById('const-company-dept-' + (i + 1));
if (constCompanyNameEle) {
jsonItem.constCompanyName = constCompanyNameEle.value;
}
// 건설사 - 담당자
var constCompanyAdminEle = document.getElementById('const-company-admin-' + (i + 1));
@ -304,15 +354,23 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
jsonItem.constCompanyTel = constCompanyTelEle.value;
}
if (cid) {
jsonItem.cid=cid;
}
if ( isValid(i + 1) == false ) {
return false;
}
jsonData.push(jsonItem);
}
}
if (cid) {
xhr.open('POST', '/drilling/input/modify.do', true);
} else {
xhr.open('POST', '/drilling/input/add.do', true);
}
xhr.open('POST', '/drilling/input/add.do', true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() {
@ -399,10 +457,10 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
if( unselectedConstructorEle.checked === false ) {
// 건설사 - 담당부서
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (index));
if (constCompanyDeptEle) {
if( constCompanyDeptEle.value === "" ) {
shakeAndHighlight(constCompanyDeptEle, "건설사 - 담당부서를 입력하세요." );
var constCompanyNameEle = document.getElementById('const-company-dept-' + (index));
if (constCompanyNameEle) {
if( constCompanyNameEle.value === "" ) {
shakeAndHighlight(constCompanyNameEle, "건설사 - 건설사명을 입력하세요." );
return false;
}
}
@ -428,6 +486,39 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
return true;
}
function getOneItem(cid) {
        xhr.open('GET', '/drilling/inquiry/one-item.do?' + 
        'CID='+ cid,
        true);
        xhr.setRequestHeader('Content-type', 'application/json');
        xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {               
                const obj = JSON.parse(xhr.responseText);
// JSON 데이터를 매핑 정보에 따라 HTML 요소에 할당
if (obj.datas && obj.datas.length > 0) {
const item = obj.datas[0]; // 첫 번째 데이터 객체를 사용
// 매핑 정보에 따라 값 할당
document.getElementById('const-name-1').value = item.constName || '';
document.getElementById('const-start-date-1').value = item.constStartDate || '';
document.getElementById('const-end-date-1').value = item.constEndDate || '';
document.getElementById('const-state-code-1').value = item.constStateCode || '1'; // 기본값 설정
document.getElementById('master-company-dept-1').value = item.masterCompanyDept || '';
document.getElementById('master-company-admin-1').value = item.masterCompanyAdmin || '';
document.getElementById('master-company-tel-1').value = item.masterCompanyTel || '';
document.getElementById('const-company-dept-1').value = item.constCompanyName || '';
document.getElementById('const-company-admin-1').value = item.constCompanyAdmin || '';
document.getElementById('const-company-tel-1').value = item.constCompanyTel || '';
}
} else if (xhr.readyState === 4) {
  // 요청 실패 시 처리
  console.error('요청 실패:', xhr.status);
}
        };
        xhr.send();
    }
</script>
<!-- javascript end-->

View File

@ -52,7 +52,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value );
const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept +
'&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage +
@ -82,7 +82,6 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
var dataListEle = document.getElementById('data-list');
dataListEle.innerHTML = '';
var content = '';
for( idx in obj.datas ) {
@ -94,22 +93,20 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const coinstCompanyDept = obj.datas[idx].coinstCompanyDept == null ? '-' : obj.datas[idx].coinstCompanyDept;
const constCompanyAdmin = obj.datas[idx].constCompanyAdmin == null ? '-' : obj.datas[idx].constCompanyAdmin;
const constCompanyTel = obj.datas[idx].constCompanyTel == null ? '-' : obj.datas[idx].constCompanyTel;
content +=
`
<tr>
<td>` + (obj.count - idx - (nCount * (nPage - 1))) + `</td>
<td style="text-align: left; text-indent: 10px;">` + obj.datas[idx].constName + `</td>
<td>` + obj.datas[idx].projectStateCodeName + `</td>
<td>` + constStartDate + ` ~ ` + constEndDate + `</td>
<td>` + obj.datas[idx].constStateCodeName + `</td>
<td>` + masterCompanyDept + `</td>
<td>` + masterCompanyAdmin + `</td>
<td>` + masterCompanyTel + `</td>
<td>` + coinstCompanyDept + `</td>
<td>` + constCompanyAdmin + `</td>
<td>` + constCompanyTel + `</td>
</tr>
`;
content += '<tr onclick="location.href=\'modify.do?CID=' + obj.datas[idx].cid + '\';" data-cid="' + obj.datas[idx].cid + '">';
content += '<td>' + (obj.count - idx - (nCount * (nPage - 1))) + '</td>';
content += '<td style="text-align: left; text-indent: 10px;">' + obj.datas[idx].constName + '</td>';
content += '<td>' + obj.datas[idx].projectStateCodeName + '</td>';
content += '<td>' + constStartDate + ' ~ ' + constEndDate + '</td>';
content += '<td>' + obj.datas[idx].constStateCodeName + '</td>';
content += '<td>' + masterCompanyDept + '</td>';
content += '<td>' + masterCompanyAdmin + '</td>';
content += '<td>' + masterCompanyTel + '</td>';
content += '<td>' + coinstCompanyDept + '</td>';
content += '<td>' + constCompanyAdmin + '</td>';
content += '<td>' + constCompanyTel + '</td>';
content += '</tr>';
}
dataListEle.innerHTML = content;

View File

@ -51,7 +51,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value );
const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -65,7 +65,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept +
'&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage +

View File

@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value );
const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -80,7 +80,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept +
'&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage +

View File

@ -163,9 +163,9 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
jsonItem.masterCompanyTel = masterCompanyTelEle.value;
}
// 건설사 - 담당부서
var constCompanyDeptEle = document.getElementById('const-company-dept-' + (i + 1));
if (constCompanyDeptEle) {
jsonItem.constCompanyDept = constCompanyDeptEle.value;
var constCompanyNameEle = document.getElementById('const-company-dept-' + (i + 1));
if (constCompanyNameEle) {
jsonItem.constCompanyName = constCompanyNameEle.value;
}
// 건설사 - 담당자
var constCompanyAdminEle = document.getElementById('const-company-admin-' + (i + 1));

View File

@ -66,7 +66,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
const constStateCode = trim( document.getElementById('const-state-code').value );
const constCompanyDept = trim( document.getElementById('company-dept').value );
const constCompanyName = trim( document.getElementById('company-dept').value );
const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value );
@ -80,7 +80,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
'&' +'constStartDate='+ constStartDate +
'&' +'constEndDate='+ constEndDate +
'&' +'constStateCode='+ constStateCode +
'&' +'constCompanyDept='+ constCompanyDept +
'&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage +

View File

@ -5799,6 +5799,67 @@ ul.faq-q > li textarea {
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
position: relative;
}
.drilling .content-wrapper .bottom-buttons .btn-plus, .drilling .content-wrapper .bottom-buttons .btn-minus {
width: 60px;
position: relative;
}
.drilling .content-wrapper .bottom-buttons .btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.drilling .content-wrapper .bottom-buttons .btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.drilling .content-wrapper .bottom-buttons .btn-modify {
width: 60px;
position: relative;
background-color: #00c48a;
color: #fff;
border: 1px solid #00c48a;
}
.drilling .content-wrapper .bottom-buttons .btn-delete {
width: 90px;
position: relative;
background: url(../img/common/icon/ico_btn_delete.png) no-repeat 10px center;
background-color: #ff214f;
color: #fff;
border: 1px solid #ff214f;
padding: 4px 14px 4px 46px;
}
.drilling .content-wrapper .bottom-buttons .btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border: 1px solid #19b3e5;
color: #fff;
}
.drilling .content-wrapper .bottom-buttons .btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
.drilling .content1 {
position: relative;
width: 100%;
@ -6044,6 +6105,16 @@ ul.faq-q > li textarea {
height: 16px;
background: url(/com/img/common/icon/ico_category_arrow.png) no-repeat 14px 4px;
}
.drilling .btn-left {
position: relative;
padding: 4px 14px;
font-size: 14px;
font-weight: bold;
height: 34px;
border-radius: 4px;
box-sizing: border-box;
margin-bottom: 10px;
}
.drilling .btn-green {
padding: 4px 14px;
font-size: 14px;
@ -6154,51 +6225,6 @@ ul.faq-q > li textarea {
.drilling .unselected-constructor-label .unselected-constructor-label-text {
vertical-align: middle;
}
.drilling .btn-plus, .drilling .btn-minus {
width: 60px;
position: relative;
}
.drilling .btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.drilling .btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.drilling .btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border: 1px solid #19b3e5;
color: #fff;
}
.drilling .btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
/* ====================================== */
/* ====================================== */

File diff suppressed because one or more lines are too long

View File

@ -4082,6 +4082,77 @@ ul.faq-q > li textarea {
padding: 20px;
box-shadow: 4px 4px 10px rgba(0,0,0,0.2);
position: relative;
.bottom-buttons {
.btn-plus,.btn-minus {
width: 60px;
position: relative;
}
.btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.btn-modify {
width: 60px;
position: relative;
background-color: #00c48a;
color:#fff;
border:1px solid #00c48a;
}
.btn-delete {
width: 90px;
position: relative;
background: url(../img/common/icon/ico_btn_delete.png) no-repeat 10px center;
background-color: #ff214f;
color:#fff;
border:1px solid #ff214f;
padding: 4px 14px 4px 46px;
}
.btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border:1px solid #19b3e5;
color: #fff;
&::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}
}
}
}
.content1 {
position: relative;
@ -4354,6 +4425,18 @@ ul.faq-q > li textarea {
}
}
.btn-left {
position: relative;
padding: 4px 14px;
font-size: 14px;
font-weight: bold;
height: 34px;
border-radius: 4px;
box-sizing: border-box;
margin-bottom: 10px;
}
.btn-green {
padding: 4px 14px;
font-size: 14px;
@ -4367,6 +4450,7 @@ ul.faq-q > li textarea {
float:right;
margin-bottom: 10px;
}
.btn-excel-download {
padding: 4px 14px 4px 46px;
position: relative;
@ -4478,59 +4562,12 @@ ul.faq-q > li textarea {
}
}
.btn-plus,.btn-minus {
width: 60px;
position: relative;
}
.btn-plus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_plus.png) no-repeat 50% 50%;
}
.btn-minus::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 5px;
left: 20px;
background: url(/com/img/common/icon/ico_btn_pm_minus.png) no-repeat 50% 50%;
}
.btn-save {
padding: 4px 14px 4px 46px;
position: relative;
font-size: 14px;
height: 34px;
font-weight: bold;
box-sizing: border-box;
background-color: #19b3e5;
border:1px solid #19b3e5;
color: #fff;
}
.btn-save::before {
display: inline-block;
position: absolute;
top: 3px;
left: 12px;
content: "";
background: url(/com/img/common/icon/ico_btn_save.png) no-repeat 50% 50%;
width: 26px;
height: 26px;
}

View File

@ -1313,6 +1313,285 @@ function initApp(param){
/*CTL_AREA_CIRCLE2.drawFeature2(evt);*/
/*console.log(BASE_MAP.getScale);*/
//thkim test
// ================================================================
// 경상남도 경계 추가 로직
// ================================================================
// 경상남도 경계 좌표 (EPSG:5186) - 실제 경계는 더 많은 좌표를 가집니다.
// 이 배열을 가지고 계신 실제 경상남도 경계 좌표로 대체하세요.
// 형식: [[경도1(X), 위도1(Y)], [경도2(X), 위도2(Y)], ...]
// 예시 좌표는 임의로 설정된 것으로 실제 경상남도 경계와 다릅니다.
var gyeongsangnamdo_boundary_coordinates_5186 = [
[246513.095026722, 411263.850132476],
[246539.849716393, 411241.1573688 ],
[246572.977223622, 411248.512191478],
[246598.549396761, 411238.629840082],
[246719.678886947, 411176.463440196],
[246746.202070526, 411136.402706803],
[246807.033156903, 411128.326614812],
[246836.828192728, 411105.499926938],
[246895.433381227, 411052.241662254],
[246904.797549417, 411015.009734917],
[246908.461397658, 411000.445198625],
[246909.270585046, 410997.226859138],
[246918.10563046, 410962.107154658],
[246928.262171584, 410948.800954891],
[246943.651203418, 410938.770281896],
[247056.595142404, 410964.475567228],
[247073.748991805, 410967.173385519],
[247091.8578387, 410973.544647539],
[247185.412378809, 411006.507172779],
[247219.751550736, 410996.217037634],
[247261.498319587, 411027.235792637],
[247363.59502982, 410986.411234693],
[247369.995580837, 410992.063064997],
[247439.03865273, 411015.34676286 ],
[247526.399936965, 411000.17866341 ],
[247541.804845207, 411027.743239692],
[247561.66825812, 411055.207938137],
[247622.567174141, 411053.088521373],
[247666.455365031, 411044.656882084],
[247717.02310194, 410976.28466848 ],
[247717.291218486, 410973.399350419],
[247733.091306363, 410963.044653076],
[247778.009641858, 410953.655936431],
[247792.047312512, 410950.614012798],
[247791.194336227, 410946.615535374],
[247787.580351651, 410932.515833708],
[247785.600269079, 410927.831245007],
[247777.69499668, 410907.2156785 ],
[247769.623869888, 410881.112486839],
[247763.880598615, 410868.585899232],
[247762.158685683, 410859.204787474],
[247766.988329699, 410855.845552377],
[247765.226438344, 410845.593340975],
[247773.304366498, 410844.952510321],
[247773.714390901, 410845.678604654],
[247778.733916319, 410846.994903651],
[247794.20012046, 410798.095840141],
[247779.288268939, 410670.268947247],
[247791.555683546, 410669.126185246],
[247802.409946593, 410667.734352799],
[247835.079750054, 410663.482850075],
[247848.748335384, 410661.90408073 ],
[247860.214735095, 410658.248010706],
[247867.195583156, 410656.158983539],
[247913.886286501, 410641.145684168],
[247919.399772668, 410645.630356028],
[247931.457272399, 410640.855177213],
[247994.122116663, 410681.183610551],
[248066.534209694, 410716.436762055],
[248104.041137962, 410726.200988161],
[248166.189015225, 410730.079286549],
[248197.783793509, 410722.630390303],
[248237.124445117, 410748.530494982],
[248339.490848861, 410819.195545398],
[248372.230353488, 410825.192203057],
[248517.000497742, 410696.472988104],
[248524.772056343, 410673.62163801 ],
[248547.662198871, 410654.691183556],
[248642.616244552, 410575.840113575],
[248669.286564755, 410498.373156267],
[248726.419248707, 410423.051353074],
[248724.971473383, 410376.69607051 ],
[248744.115411902, 410283.683130791],
[248817.931464158, 410158.552197102],
[248871.79036452, 410130.507639213],
[248870.513727103, 410080.185913398],
[248894.134546504, 410041.389235291],
[248894.969681706, 410040.012104634],
[248894.458666229, 410038.607930633],
[248861.123654838, 409947.068586798],
[248839.872790537, 409929.456960295],
[248820.741112151, 409913.601595716],
[248812.647835971, 409892.399957208],
[248798.846364854, 409856.24945829 ],
[248776.130333006, 409838.726798015],
[248751.151098738, 409819.45787265 ],
[248723.004628535, 409796.163397527],
[248678.672737881, 409759.472924 ],
[248692.259110379, 409664.463592183],
[248695.061012181, 409644.867461182],
[248693.360729776, 409581.085201339],
[248692.750345931, 409558.202596772],
[248619.859188208, 409590.114022416],
[248580.842438641, 409602.106210319],
[248511.928192978, 409585.085224418],
[248420.344298296, 409604.751706727],
[248340.624608444, 409595.35925973 ],
[248267.534398433, 409594.862016475],
[248253.377896135, 409558.41647373 ],
[248191.270945531, 409557.136470679],
[248137.108231498, 409544.409411581],
[248109.499578901, 409529.232870206],
[248089.591652603, 409518.743088956],
[248037.102703456, 409520.166679285],
[247952.611911031, 409529.682226625],
[247936.803762371, 409575.452926618],
[247922.99590009, 409619.175454966],
[247932.449739001, 409660.10436362 ],
[247921.406964256, 409711.297819055],
[247887.402269555, 409773.720856544],
[247850.981001716, 409812.795182843],
[247821.625916213, 409838.932258418],
[247803.650646164, 409847.196654565],
[247766.229993294, 409861.966204037],
[247756.277666269, 409868.886688368],
[247721.945427236, 409881.441079899],
[247711.74016083, 409885.385220277],
[247670.429226266, 409894.941064083],
[247663.188403409, 409895.210877907],
[247660.492054324, 409896.736969696],
[247654.736355391, 409898.449991066],
[247648.938764317, 409896.401586076],
[247591.609504274, 409923.432925582],
[247588.297079371, 409925.176023463],
[247587.776974303, 409926.731183658],
[247583.35437988, 409929.964416728],
[247570.786927717, 409931.23418417 ],
[247562.240942887, 409932.00901601 ],
[247560.737776229, 409931.925961644],
[247556.944324409, 409932.759942383],
[247575.438822685, 409985.645472765],
[247567.784923209, 409986.922388043],
[247559.376934512, 409988.345297253],
[247525.364937616, 409994.014920237],
[247491.881000988, 409999.65655586 ],
[247467.065084504, 410003.802281803],
[247446.823706834, 410007.144053774],
[247436.83953393, 410008.795941697],
[247430.414779145, 410009.859869682],
[247425.711758412, 409992.870808918],
[247418.018277166, 409980.025126933],
[247417.516234446, 409979.565059916],
[247412.472562478, 409983.054303329],
[247399.028784027, 409991.931904349],
[247391.310758274, 409997.187267333],
[247386.491039821, 410003.071788151],
[247384.490826633, 410002.674683418],
[247383.828739143, 410003.108712659],
[247379.976263205, 410004.526757638],
[247374.761660336, 410005.064662389],
[247372.443432049, 410003.976470035],
[247326.710631726, 409959.013019981],
[247315.518936205, 409940.174556053],
[247301.459638207, 409930.685062893],
[247184.42301714, 409979.191042657],
[247154.510268947, 409991.965591271],
[247131.911369557, 410003.877261219],
[247083.706107119, 410031.885984118],
[247057.322223759, 410062.444648156],
[247041.387439622, 410062.148137818],
[246965.116087964, 410054.445985056],
[246949.435782001, 410105.95433694 ],
[246948.753731637, 410138.484992904],
[246925.570476415, 410193.501516714],
[246916.23262468, 410220.265261914],
[246906.901722717, 410248.733199913],
[246847.583315178, 410239.812416676],
[246811.213685989, 410224.33857961 ],
[246799.055474925, 410219.093623042],
[246786.937117725, 410218.881236407],
[246776.373908388, 410219.574998711],
[246704.500588233, 410227.359727714],
[246661.335544292, 410267.020918163],
[246656.612727206, 410276.565855514],
[246621.467762713, 410343.7233933 ],
[246608.096574235, 410366.575575695],
[246525.501703125, 410452.697836668],
[246516.898163099, 410471.807738799],
[246503.854936264, 410497.174215115],
[246487.386737456, 410508.72902809 ],
[246447.085820054, 410554.930043171],
[246418.409459389, 410559.40969124 ],
[246391.754881836, 410578.736077618],
[246364.578678541, 410583.597813757],
[246318.987327615, 410590.986284346],
[246283.520084568, 410599.419175932],
[246273.311303794, 410620.538257037],
[246268.789161177, 410641.713514667],
[246262.585571147, 410671.515696878],
[246262.098036702, 410687.538492979],
[246270.676632403, 410699.884144854],
[246285.613665693, 410721.512035978],
[246282.632345371, 410754.415665104],
[246280.6413709, 410779.487438812],
[246286.598309841, 410803.919378069],
[246321.198513556, 410860.357791514],
[246298.862903835, 410896.993263127],
[246285.239787354, 410949.899834223],
[246267.587818988, 410982.714014152],
[246267.174796297, 411015.326687241],
[246230.358579588, 411051.216641175],
[246191.718886813, 411062.749788051],
[246142.635600801, 411121.659976234],
[246125.505786231, 411151.298812906],
[246135.28281231, 411187.176159863],
[246137.30131093, 411244.91774539 ],
[246136.982743647, 411262.670742037],
[246118.652520295, 411301.452575964],
[246072.861214223, 411373.404336317],
[246062.610474377, 411392.99624348 ],
[246198.683392279, 411406.096796694],
[246264.770689735, 411410.717296901],
[246280.310352653, 411413.574084856],
[246384.423977175, 411383.170765332],
[246424.893014078, 411333.615376513],
[246424.603447626, 411318.044608239],
[246466.712192924, 411284.393065716],
[246513.095026722, 411263.850132476]
];
if( false ) {
// 경계 폴리곤 생성
var boundaryPoints = [];
var sourceProj = new OpenLayers.Projection("EPSG:5186"); // 원본 좌표계: GRS80 (5186)
var destProj = new OpenLayers.Projection("EPSG:3857"); // 지도 투영 좌표계: Web Mercator (3857)
for (var i = 0; i < gyeongsangnamdo_boundary_coordinates_5186.length; i++) {
var x = gyeongsangnamdo_boundary_coordinates_5186[i][0];
var y = gyeongsangnamdo_boundary_coordinates_5186[i][1];
var point = new OpenLayers.Geometry.Point(x, y);
// EPSG:5186에서 EPSG:3857로 좌표 변환
point.transform(sourceProj, destProj);
boundaryPoints.push(point);
}
// LinearRing을 사용하여 폴리곤의 외부 링을 만듭니다.
var boundaryLinearRing = new OpenLayers.Geometry.LinearRing(boundaryPoints);
// 폴리곤 생성
var gyeongsangnamdoPolygon = new OpenLayers.Geometry.Polygon([boundaryLinearRing]);
// 경계 폴리곤 스타일 정의
var boundaryStyle = {
strokeColor: "#0000FF", // 경계선 색상 (파랑)
strokeOpacity: 0.8, // 경계선 투명도
strokeWidth: 3, // 경계선 두께
fillColor: "#0000FF", // 채우기 색상
fillOpacity: 0.1 // 채우기 투명도 (거의 투명하게)
};
// 벡터 피처 생성
var gyeongsangnamdoFeature = new OpenLayers.Feature.Vector(gyeongsangnamdoPolygon, null, boundaryStyle);
// 기존 HOLE_AREA 레이어에 경계 피처 추가
// HOLE_AREA는 이미 BASE_MAP에 추가되어 있어야 합니다.
// map.js 파일에서 HOLE_AREA가 정의된 부분:
// HOLE_AREA = new OpenLayers.Layer.Vector("AREA");
// BASE_MAP.addLayer(HOLE_AREA);
// 이 부분 이후에 아래 코드를 추가해야 합니다.
if (HOLE_AREA) {
HOLE_AREA.addFeatures([gyeongsangnamdoFeature]);
} else {
console.error("HOLE_AREA 레이어가 초기화되지 않았습니다. 경계 추가에 실패했습니다.");
}
}
};

View File

@ -87,7 +87,6 @@ function GeoSection(divID) {
// API Functions
// ==========================================================
this.show = function(data) {
// ---------------------------------------
// Create Map & Layer
// ---------------------------------------