feat: 지도에서 화면저장 시 그리기 도구가 포함되도록 개선

main
thkim 2025-11-26 14:30:36 +09:00
parent 26374eb243
commit bbdb820b4a
8 changed files with 369 additions and 3162 deletions

View File

@ -238,7 +238,7 @@ public class MapMainController {
public void getMineInfo(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String, Object> params) throws Exception {
// 1. 서비스 키 & 파라미터 설정
String serviceKey = "L1z0zEpxNLB0Sqwv97WAIyL1lB+shPemDLNaG9hy9g3BzbkXRVG2/aSTZ7PiAAivgaCYn, 9p1tLmq2keiC4yFZA==";
String serviceKey = "L1z0zEpxNLB0Sqwv97WAIyL1lB+shPemDLNaG9hy9g3BzbkXRVG2/aSTZ7PiAAivgaCYn9p1tLmq2keiC4yFZA==";
String mgtNo = request.getParameter("mgtNo");
// 2. API URL 생성 (JSON 요청)

View File

@ -1,222 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/include/inc_map_head_2021_new.jsp" %>
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css" type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script>
<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<%-- <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script> --%>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript" >
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
</script>
<%
String pcode = request.getParameter("pcode");
System.out.println("pCode : " + pcode);
if(pcode != null){
%>
<script>
openDetail2('<%=pcode%>');
</script>
<%}%>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<%=request.getParameter("mapGbn")%>"/>
</form>
<!-- 페이지 컨테이너 시작 -->
<section class="page-container">
<div class="page-content-wrapper map-division-add">
<!-- <IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME> -->
<c:import url="/map/mapLeft.do" />
<!-- 컨텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<div class="map-control-wrapper">
<!-- 지도 상단 컨트롤 시작 -->
<div class="map-top-control-wrapper">
<div class="sidebar-top-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<ul class="map-top-btn-group">
<li>
<a href="javascript:showSichudan();" class="map-top-btn map-btn-icon-section">시추<br />단면도</a>
</li>
<li>
<a href="javascript:showJusangdo();" class="map-top-btn map-btn-icon-column">시추<br />주상도</a>
</li>
<li>
<a href="javascript:showSichuInfo();" class="map-top-btn map-btn-icon-info">정보<br />보기</a>
</li>
<li>
<a href="javascript:show3dProject();" class="map-top-btn map-btn-icon-3D">3차원</a>
</li>
<li>
<a href="javascript:showSichuDownload();" class="map-top-btn map-btn-icon-dril-download">시추공<br />다운로드</a>
</li>
<li>
<a href="javascript:showLoInfo();" class="map-top-btn map-btn-icon-info">측선좌표<br />리스트</a>
</li>
<!-- <li>
<a href="#" class="map-top-btn map-btn-icon-geo-analysis">지반분석<br />정보</a>
</li>
<li>
<a href="#" class="map-top-btn map-btn-icon-lique-control">액상화<br />위험지도<br />제어</a>
</li> -->
<c:if test="${params.cls == 3 || params.cls == 9}">
<li>
<a href="javascript:showLiqInfo()" class="map-top-btn map-btn-icon-lique-download" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)">액상화<br />위험지도<br />다운로드</a>
</li>
</c:if>
</ul>
</div>
<!-- 지도 상단 컨트롤 끝 -->
<!-- 지도 오른쪽 컨트롤 시작 -->
<div class="map-right-control-wrapper">
<div class="sidebar-right-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<!-- 지도제어 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">지도제어</div>
<ul class="map-right-btn-group">
<li class="row-all">
<a href="javascript:zoomMax();" class="map-right-btn map-btn-icon-all">전체</a>
</li>
<li>
<a href="javascript:zoomIn();" class="map-right-btn map-btn-icon-zoom-in">확대</a>
</li>
<li>
<a href="javascript:zoomOut();" class="map-right-btn map-btn-icon-zoom-out">축소</a>
</li>
<li>
<a href="javascript:onSearchHole();" class="map-right-btn map-btn-icon-choice">선택</a>
</li>
<li>
<a href="javascript:move();" class="map-right-btn map-btn-icon-move">이동</a>
</li>
<li>
<a href="javascript:onSearchProject();" class="map-right-btn map-btn-icon-business">사업선택</a>
</li>
<li>
<a href="javascript:onSearchArea();" class="map-right-btn map-btn-icon-area-choice">영역선택</a>
</li>
<li>
<a href="javascript:saveToImage();" class="map-right-btn map-btn-icon-screen">화면저장</a>
</li>
<li>
<a href="javascript:onAreaSearch();" class="map-right-btn map-btn-icon-search">영역검색</a>
</li>
<li>
<a href="javascript:onCalDistance();" class="map-right-btn map-btn-icon-distance">거리</a>
</li>
<li>
<a href="javascript:onCalArea();" class="map-right-btn map-btn-icon-area">면적</a>
</li>
<li>
<a href="javascript:onIndexMap();" class="map-right-btn map-btn-icon-index-map">인댁스앱</a>
</li>
<li>
<a href="javascript:onTest();" class="map-right-btn map-btn-icon-index-map">테스트</a>
</li><!-- 삭제. -->
<!-- <li>
<a href="javascript:onLegendInfo();" class="map-right-btn map-btn-icon-legend">범례</a>
</li> -->
</ul>
</div>
<!-- 지도제어 끝 -->
<!-- 그리기도구 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">그리기도구</div>
<ul class="map-right-btn-group">
<li>
<a href="javascript:addDrawLine();" class="map-right-btn map-btn-icon-line">선</a>
</li>
<li>
<a href="javascript:addDrawTriangle();" class="map-right-btn map-btn-icon-triangle">삼각형</a>
</li>
<li>
<a href="javascript:addDrawCircle();" class="map-right-btn map-btn-icon-circle">원</a>
</li>
<li>
<a href="javascript:addDrawBox();" class="map-right-btn map-btn-icon-square">사각형</a>
</li>
<li>
<a href="javascript:removeDraw();" class="map-right-btn map-btn-icon-delete">삭제</a>
</li>
<li>
<a href="javascript:removeAllDraw();" class="map-right-btn map-btn-icon-delete-all">전체삭제</a>
</li>
</ul>
</div>
<!-- 그리기도구 끝 -->
</div>
<!-- 지도 오른쪽 컨트롤 끝 -->
</div>
</div>
<!-- 지도 시작 -->
<div class="map-wrapper">
<div id="map" class="map-area"></div>
</div>
<!-- 지도 끝 -->
</div>
<!-- 컨텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
</body>
</html>

View File

@ -1,868 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/include/inc_map_head_2021_new.jsp"%>
<link rel="stylesheet"
href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css"
type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script>
<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DrawFeature.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript">
$(document).ready(function() {
});
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
function Loading() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
}
function LoadingShow() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
$("#mask").show();
}
function test1click(){
$("#test1click").css("display", "");
$("#test2click").css("display", "none");
$("#test3click").css("display", "none");
$("#test4click").css("display", "");
}
function test2click(){
$("#test1click").css("display", "none");
$("#test2click").css("display", "");
$("#test3click").css("display", "none");
$("#test4click").css("display", "none");
}
function test3click(){
$("#test1click").css("display", "none");
$("#test2click").css("display", "none");
$("#test3click").css("display", "");
$("#test4click").css("display", "none");
}
</script>
<%
String pcode = request.getParameter("pcode");
String mapGbn = request.getParameter("mapGbn");
System.out.println("pCode : " + pcode);
if (pcode != null) {
%>
<c:set var="pcode" value="<%=pcode%>" />
<c:set var="mapGbn" value="<%=mapGbn%>" />
<script>
openDetail2('<c:out value="${pcode}" />');
</script>
<%
}
%>
<style>
</style>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<c:out value="${mapGbn}"/>" />
</form>
<!-- 페이지 컨테이너 시작 -->
<section class="page-container">
<div class="page-content-wrapper map-division-add">
<!-- <IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME> -->
<c:import url="/map/mapLeft.do" />
<!-- 컨텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<div class="map-control-wrapper">
<!-- 지도 상단 컨트롤 시작 -->
<div class="map-top-control-wrapper">
<div class="sidebar-top-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<ul class="map-top-btn-group">
<li><a href="javascript:showSichudan();"
class="map-top-btn map-btn-icon-section">시추<br />단면도
</a></li>
<li><a href="javascript:showJusangdo();"
class="map-top-btn map-btn-icon-column">시추<br />주상도
</a></li>
<li><a href="javascript:showSichuInfo();"
class="map-top-btn map-btn-icon-info">정보<br />보기
</a></li>
<!-- <li><a href="javascript:show3dProject();"
class="map-top-btn map-btn-icon-3D">3차원</a></li> -->
<li><a href="javascript:showSichuDownload();"
class="map-top-btn map-btn-icon-dril-download">시추공<br />다운로드
</a></li>
<li><a href="javascript:jibanModelDownload();"
class="map-top-btn map-btn-icon-dril-download">지반모델<br />다운로드
</a></li>
<li><a href="javascript:showLoInfo();"
class="map-top-btn map-btn-icon-info">측선좌표<br />리스트
</a></li>
<!-- <li>
<a href="#" class="map-top-btn map-btn-icon-geo-analysis">지반분석<br />정보</a>
</li>
<li>
<a href="#" class="map-top-btn map-btn-icon-lique-control">액상화<br />위험지도<br />제어</a>
</li> -->
<c:if test="${params.cls == 3 || params.cls == 9}">
<li><a href="javascript:showLiqInfo()"
class="map-top-btn map-btn-icon-lique-download"
onFocus="this.blur()" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)">액상화<br />위험지도<br />다운로드
</a></li>
</c:if>
</ul>
</div>
<!-- 지도 상단 컨트롤 끝 -->
<!-- 지도 오른쪽 컨트롤 시작 -->
<div class="map-right-control-wrapper">
<div class="sidebar-right-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<!-- 지도제어 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">지도제어</div>
<ul class="map-right-btn-group">
<li class="row-all"><a href="javascript:zoomMax();"
class="map-right-btn map-btn-icon-all">전체</a></li>
<li><a href="javascript:zoomIn();"
class="map-right-btn map-btn-icon-zoom-in">확대</a></li>
<li><a href="javascript:zoomOut();"
class="map-right-btn map-btn-icon-zoom-out">축소</a></li>
<li><a href="javascript:onSearchHole();"
class="map-right-btn map-btn-icon-choice">선택</a></li>
<li><a href="javascript:move();"
class="map-right-btn map-btn-icon-move">이동</a></li>
<li><a href="javascript:onSearchProject();"
class="map-right-btn map-btn-icon-business">사업선택</a></li>
<li><a href="javascript:onSearchArea();"
class="map-right-btn map-btn-icon-area-choice">영역선택</a></li>
<li><a href="javascript:saveToImage();"
class="map-right-btn map-btn-icon-screen">화면저장</a></li>
<li><a href="javascript:onAreaSearch();"
class="map-right-btn map-btn-icon-search">영역검색</a></li>
<li><a href="javascript:onCalDistance();"
class="map-right-btn map-btn-icon-distance">거리</a></li>
<li><a href="javascript:onCalArea();"
class="map-right-btn map-btn-icon-area">면적</a></li>
<li><a href="javascript:onIndexMap();"
class="map-right-btn map-btn-icon-index-map">인댁스앱</a></li>
<li>
<a href="javascript:onSearchJiban();"
class="map-right-btn map-btn-icon-choice">지반선택</a>
</li>
</ul>
</div>
<!-- 지도제어 끝 -->
<!-- 그리기도구 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">그리기도구</div>
<ul class="map-right-btn-group">
<li><a href="javascript:addDrawLine();"
class="map-right-btn map-btn-icon-line">선</a></li>
<li><a href="javascript:addDrawTriangle();"
class="map-right-btn map-btn-icon-triangle">삼각형</a></li>
<li><a href="javascript:addDrawCircle();"
class="map-right-btn map-btn-icon-circle">원</a></li>
<li><a href="javascript:addDrawBox();"
class="map-right-btn map-btn-icon-square">사각형</a></li>
<li><a href="javascript:removeDraw();"
class="map-right-btn map-btn-icon-delete">삭제</a></li>
<li><a href="javascript:removeAllDraw();"
class="map-right-btn map-btn-icon-delete-all">전체삭제</a></li>
</ul>
</div>
<!-- 그리기도구 끝 -->
</div>
<!-- 지도 오른쪽 컨트롤 끝 -->
</div>
</div>
<!-- 지도 시작 -->
<div class="map-wrapper">
<div id="map" class="map-area"></div>
</div>
<!-- 지도 끝 -->
</div>
<!-- 컨텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
</body>
<!-- 팝업 시작 -->
<div id="popup_type_1" class="kc-popup" style="display:none;">
<div class="k-popup-edit-form">
<div class="k-edit-form-container">
<!-- 팝업 컨텐츠 시작 -->
<div class="popup-content-wrapper">
<div class="page-sidebar" id = "pageTest" style="height: 40px;">
<div class="map-left-tab-wrapper">
<ul class="map-left-tab-group">
<li class="active">
<a href="#test1" id="test1" data-toggle="tab" class="tab-search" aria-expanded="true" onClick="test1click()"> 사업정보 </a>
</li>
<li class="">
<a href="#test2" id="test2" data-toggle="tab" class="tab-search" aria-expanded="false" onClick="test2click()"> 지층정보 </a>
</li>
<li class="">
<a href="#test3" id="test3" data-toggle="tab" class="tab-search" aria-expanded="false" onClick="test3click()"> 시추공정보 </a>
</li>
</ul>
</div>
</div>
<div class="contents-row" id="test1click">
<h1 class="page-title-1depth"><span>사업정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="15%">
<col width="40%">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">구분</th>
<th scope="col">메타데이타</th>
<th scope="col">조사명</th>
<th scope="col">조사기간</th>
<th scope="col">다운로드</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center" id="sichClassName"></td>
<td class="t-center" id="sichMetaData"></td>
<td class="t-center" id="sichProjectCode"></td>
<td class="t-center" id="sichProjectDate">~</td>
<td class="t-center" id="sichProjectDown">
<a href="javascript:void(0);" class="icon icon-download" title="다운로드">다운로드</a>
</td>
</tr>
</tbody>
<thead>
<tr>
<th scope="col" colspan="5">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-left" colspan="5"></td>
</tr>
</tbody>
</table>
</div>
<br>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="15%">
<col width="15%">
<col width="15%">
<col width="15%">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">시공업체</th>
<th scope="col">설계업체</th>
<th scope="col">감리업체</th>
<th scope="col">공사기간</th>
<th scope="col">과업지역</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center">(주)한진설계</td>
<td class="t-center">(주)대황</td>
<td class="t-center">주식회사 선풍</td>
<td class="t-center">20190104~20190406</td>
<td class="t-center">경기도 고양시 일산서구 대화동 315</td>
</tr>
</tbody>
<thead>
<tr>
<th scope="col" colspan="5">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-left" colspan="5"></td>
</tr>
</tbody>
</table>
</div>
<br>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="15%">
<col width="15%">
<col width="15%">
<col width="15%">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">프로젝트 대분류</th>
<th scope="col">프로젝트 소분류</th>
<th scope="col">공사상황</th>
<th scope="col">시설형태</th>
<th scope="col">발주처</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center">운송교통시설</td>
<td class="t-center">철도운송</td>
<td class="t-center">실시설계</td>
<td class="t-center">선형</td>
<td class="t-center">국토교통부 산하기관</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row" id="test2click">
<h1 class="page-title-1depth"><span>지층정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">시추공번호</th>
<th scope="col">시작심도</th>
<th scope="col">종료심도</th>
<th scope="col">지층명</th>
<th scope="col">USCS코드</th>
<th scope="col">지층색</th>
</tr>
</thead>
<tbody>
<tr>
<td class="td-head" rowspan="100%">CB001</td>
</tr>
<tr>
<td class="td-head">0</td>
<td class="td-head">10</td>
<td class="td-head" >보통암층</td>
<td class="td-head" >XR</td>
<td class="td-head">갈녹색</td>
</tr>
<tr>
<td class="td-head">10</td>
<td class="td-head">20</td>
<td class="td-head" >풍화토층</td>
<td class="td-head" >HR</td>
<td class="td-head">담회백색</td>
</tr>
<tr>
<td class="td-head">20</td>
<td class="td-head">25</td>
<td class="td-head" >경암층</td>
<td class="td-head" >MR</td>
<td class="td-head">담회백색</td>
</tr>
</tbody>
</table>
<br>
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">시추공번호</th>
<th scope="col">시작심도</th>
<th scope="col">종료심도</th>
<th scope="col">지층명</th>
<th scope="col">USCS코드</th>
<th scope="col">지층색</th>
</tr>
</thead>
<tbody>
<tr>
<td class="td-head" rowspan="100%">CB002</td>
</tr>
<tr>
<td class="td-head">0</td>
<td class="td-head">10</td>
<td class="td-head" >보통암층</td>
<td class="td-head" >XR</td>
<td class="td-head">갈녹색</td>
</tr>
<tr>
<td class="td-head">10</td>
<td class="td-head">20</td>
<td class="td-head" >풍화토층</td>
<td class="td-head" >HR</td>
<td class="td-head">담회백색</td>
</tr>
<tr>
<td class="td-head">20</td>
<td class="td-head">25</td>
<td class="td-head" >경암층</td>
<td class="td-head" >MR</td>
<td class="td-head">담회백색</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row" id="test3click">
<h1 class="page-title-1depth"><span>등록된 시험정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="20%">
<col width="20%">
<col width="auto">
</colgroup>
<tbody>
<tr>
<td class="td-head" rowspan="7">CB001</td>
</tr>
<tr>
<td class="td-head" rowspan="2">기본현장시험</td>
<td class="td-head">기본측정</td>
<td id="basicTest">표준관입시험</td>
</tr>
<tr>
<td class="td-head">현장시험</td>
<td id="fieldTest">현장수압시험, 현장투수시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">토사시험</td>
<td id="sandInfoTest">입도시험, 반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">암석시험</td>
<td id="rockPointloadTest">반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">물리검층</td>
<td id="geoLoggingTest">하향식탄성파, 밀도검층</td>
</tr>
<tr>
<td class="td-head" colspan="2">기본물성시험</td>
<td id="sampleInfoTest">기본물성시험</td>
</tr>
</tbody>
</table>
<br>
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="20%">
<col width="20%">
<col width="auto">
</colgroup>
<tbody>
<tr>
<td class="td-head" rowspan="7">CB002</td>
</tr>
<tr>
<td class="td-head" rowspan="2">기본현장시험</td>
<td class="td-head">기본측정</td>
<td >표준관입시험</td>
</tr>
<tr>
<td class="td-head">현장시험</td>
<td >현장수압시험, 현장투수시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">토사시험</td>
<td>입도시험, 반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">암석시험</td>
<td >반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">물리검층</td>
<td >하향식탄성파, 밀도검층</td>
</tr>
<tr>
<td class="td-head" colspan="2">기본물성시험</td>
<td >기본물성시험</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row" style="display: none;">
<h1 class="page-title-1depth"><span>데이터 품질등급</span></h1>
<div class="rating-star" id="quality">
<span></span>
<span></span>
<span></span>
<span></span>
<span class="star-off"></span>
</div>
</div>
<div class="contents-row" id="test4click">
<h1 class="page-title-1depth"><span>시추공 일반정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="auto">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">굴진심도</th>
<th scope="col">표고</th>
<th scope="col">지하수위</th>
</tr>
</thead>
<tbody id="sichProjectInfo">
<tr>
<td class="t-center">1</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">2</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">3</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 팝업 컨텐츠 끝 -->
</div>
</div>
</div>
<script>
var popup1 = $("#popup_type_1");
popup1.kendoWindow({
animation: false,
width: 900,
minWidth: 900,
height: 600,
minHeight: 600,
modal: true,
scrollable: true,
resizable: true,
pinned: true,
title: "사업별 시추공 상세정보"
});
function popupDataOpen(projectCode){
/* var params = "projectCode="+"B7328"+"&pcode="+"B7328"; */
var params = "projectCode="+projectCode+"&pcode="+projectCode;
$.ajax({
url : "/map/mapSichInformation.do",
method : "post",
data : params,
success : function(data){
console.log(data);
console.log(data.result[0].holeCode);
$("#sichClassName").html(data.project.className);
$("#sichProjectCode").html('<a href=# onClick="javascript:preView(\''+data.project.projectCode+'\')" style="cursor: pointer;">'+data.project.projectName+'</a>');
$("#sichMetaData").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
if(data.project.projectStartDate == null || data.project.projectEndDate == null){
}else{
$("#sichProjectDate").html(data.project.projectStartDate+"~"+data.project.projectEndDate);
}
$("#sichProjectDown").html('<a href="javascript:downloadNew(\''+data.project.projectCode+'\',\''+data.project.projectCode+'.zip\',\''+data.userId+'\')" class="icon icon-download" title="다운로드">다운로드</a>');
var text ="";
for(var i=0; i<data.hole.length; i++){
text += '<tr>';
text += '<td class="t-center">'+i+'</td>';
text += data.hole[i].depth != null ? '<td class="t-right">'+data.hole[i].depth+'</td>' : '<td class="t-right"></td>';
text += data.hole[i].el != null ? '<td class="t-right">'+data.hole[i].el+'</td>' : '<td class="t-right"></td>';
if(data.hole.wl == "-99999"){
text +='<td class="t-right">심도이하</td></tr>'
}else{
text += data.hole[i].wl != null ? '<td class="t-right">'+data.hole[i].wl+'</td>' : '<td class="t-right"></td>';
}
}
$("#sichProjectInfo").html(text);
var basicTestText = '';
var fieldTest = '';
var sandInfoTest = '';
var rockPointloadTest = '';
var geoLoggingTest = '';
var sampleInfoTest = '';
basicTestText += data.projectCount.stanSpt >0 ? "표준관입시험,": "";
basicTestText += data.projectCount.stanSlickenside >0 ? "절리간격,": "";
basicTestText += data.projectCount.stanTcrrqd >0 ? "TCR/RQD,": "";
basicTestText += data.projectCount.stanDsf >0 ? "DSF,": "";
basicTestText += data.projectCount.stanRmr >0 ? "RMR,": "";
basicTestText += data.projectCount.stanQ >0 ? "Q,": "";
basicTestText = basicTestText.substr(0, basicTestText.length - 1);
$("#basicTest").html(basicTestText);
fieldTest += data.projectCount.fieldWaterpressure >0 ? "현장수압시험,": "";
fieldTest += data.projectCount.fieldPermeablity >0 ? "현장투수시험,": "";
fieldTest += data.projectCount.fieldPressuremeter >0 ? "공내재하시험,": "";
fieldTest += data.projectCount.fieldConePenetration >0 ? "현장투수시험,": "";
fieldTest = fieldTest.substr(0, fieldTest.length - 1);
$("#fieldTest").html(fieldTest);
sandInfoTest += data.projectCount.sandClassification >0 ? "입도시험,": "";
sandInfoTest += data.projectCount.sandCbr >0 ? "CBR시험,": "";
sandInfoTest += data.projectCount.sandConsolidation >0 ? "압밀시험,": "";
sandInfoTest += data.projectCount.sandUnconfinedUsual >0 ? "일축압축시험,": "";
sandInfoTest += data.projectCount.sandTriaxial >0 ? "삼축압축시험,": "";
sandInfoTest += data.projectCount.sandResonant >0 ? "공진주,": "";
sandInfoTest += data.projectCount.sandRepeatedTriaxial >0 ? "반복삼축시험,": "";
sandInfoTest = sandInfoTest.substr(0, sandInfoTest.length - 1);
$("#sandInfoTest").html(sandInfoTest);
rockPointloadTest += data.projectCount.rockUniaxial >0 ? "일축압축시험,": "";
rockPointloadTest += data.projectCount.rockTriaxial >0 ? "삼축압축시험,": "";
rockPointloadTest += data.projectCount.rockPointload >0 ? "점하중시험,": "";
rockPointloadTest += data.projectCount.rockJointshear >0 ? "절리면전단시험,": "";
rockPointloadTest += data.projectCount.rockResonant >0 ? "공진주,": "";
rockPointloadTest += data.projectCount.rockRepeatedTriaxial >0 ? "반복삼축시험,": "";
rockPointloadTest = rockPointloadTest.substr(0, rockPointloadTest.length - 1);
$("#rockPointloadTest").html(rockPointloadTest);
geoLoggingTest += data.projectCount.boreholeWave >0 ? "PS검층,": "";
geoLoggingTest += data.projectCount.density >0 ? "밀도검층,": "";
geoLoggingTest += data.projectCount.downhole >0 ? "하향식탄성파,": "";
geoLoggingTest = geoLoggingTest.substr(0, geoLoggingTest.length - 1);
$("#geoLoggingTest").html(geoLoggingTest);
$("#sampleInfoTest").html("기본물성시험");
var qulityText = '';
if(data.projectCount.qualityInformation >8000){
qulityText += '<span></span><span></span><span></span><span></span><span></span>';
}else if(data.projectCount.qualityInformation >6000){
qulityText += '<span></span><span></span><span></span><span></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >4000){
qulityText += '<span></span><span></span><span></span><span class="star-off"></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >2000){
qulityText += '<span></span><span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}else{
qulityText += '<span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}
$("#quality").html(qulityText);
moveToExtent(data.bbox.minx, data.bbox.miny, data.bbox.maxx, data.bbox.maxy);
addProjectHoles(data.project.projectCode);
},
error : function(){
alert("오류입니다.");
},
complete: function(data){
$(".k-edit-form-container").css("width", "100%");
$(".contents-row .table-scrollable").css("overflow-x", "hidden");
popupData1.open();
popupData1.center();
}
});
$("#pageTest").css("height", 50);
$("#pageTest").css("min-height", "");
$("#pageTest").css("padding-left", 0);
$("#pageTest").css("padding-right", 5);
$("#test1").css("padding-left", 100);
$("#test2").css("padding-left", 100);
$("#test3").css("padding-left", 100);
$("#test1click").css("display", "");
$("#test2click").css("display", "");
$("#test3click").css("display", "");
$("#test4click").css("display", "");
}
$("#popup_open_1").kendoButton({
click: function() {
popupData1.open();
}
});
var popupData1 = popup1.data("kendoWindow");
popupData1.center();
function downloadNew(mId, fName) {
var left = (screen.width) / 2 - 350;
var top = (screen.height) / 2 - 450;
// 다운로드 목적 추가(수정)
downloadWin = window.open("/map/downloadPurposeNew.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=yes,width=793,height=760,left=" + left + ",top=" + top);
downloadWin.focus();
}
/** 미리보기 * */
function preView(mId) {
preViewWin = window.open("/map/preview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=484,height=520,left=0,top=0");
preViewWin.focus();
}
/** 메타데이터 조회 * */
function openMetadata(mId) {
metadataWin = window.open("/map/metaDataView.do?mid=" + mId, "metadataWin", "title=no,toolbar=no,scrollbars=auto,width=600,height=600,left=0,top=0");
metadataWin.focus();
}
</script>
<!-- 팝업 끝 -->
</html>

View File

@ -1,619 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/include/inc_map_head_2021_new.jsp"%>
<link rel="stylesheet"
href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css"
type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script>
<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DrawFeature.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript">
$(document).ready(function() {
});
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
function Loading() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
}
function LoadingShow() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
$("#mask").show();
}
</script>
<%
String pcode = request.getParameter("pcode");
String mapGbn = request.getParameter("mapGbn");
System.out.println("pCode : " + pcode);
if (pcode != null) {
%>
<c:set var="pcode" value="<%=pcode%>" />
<c:set var="mapGbn" value="<%=mapGbn%>" />
<script>
openDetail2('<c:out value="${pcode}" />');
</script>
<%
}
%>
<style>
</style>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<c:out value="${mapGbn}"/>" />
</form>
<!-- 페이지 컨테이너 시작 -->
<section class="page-container">
<div class="page-content-wrapper map-division-add">
<!-- <IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME> -->
<c:import url="/map/mapLeft.do" />
<!-- 컨텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<div class="map-control-wrapper">
<!-- 지도 상단 컨트롤 시작 -->
<div class="map-top-control-wrapper">
<div class="sidebar-top-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<ul class="map-top-btn-group">
<li><a href="javascript:showSichudan();"
class="map-top-btn map-btn-icon-section">시추<br />단면도
</a></li>
<li><a href="javascript:showJusangdo();"
class="map-top-btn map-btn-icon-column">시추<br />주상도
</a></li>
<li><a href="javascript:showSichuInfo();"
class="map-top-btn map-btn-icon-info">정보<br />보기
</a></li>
<!-- <li><a href="javascript:show3dProject();"
class="map-top-btn map-btn-icon-3D">3차원</a></li> -->
<li><a href="javascript:showSichuDownload();"
class="map-top-btn map-btn-icon-dril-download">시추공<br />다운로드
</a></li>
<li><a href="javascript:jibanModelDownload();"
class="map-top-btn map-btn-icon-dril-download">지반모델<br />다운로드
</a></li>
<li><a href="javascript:showLoInfo();"
class="map-top-btn map-btn-icon-info">측선좌표<br />리스트
</a></li>
<!-- <li>
<a href="#" class="map-top-btn map-btn-icon-geo-analysis">지반분석<br />정보</a>
</li>
<li>
<a href="#" class="map-top-btn map-btn-icon-lique-control">액상화<br />위험지도<br />제어</a>
</li> -->
<c:if test="${params.cls == 3 || params.cls == 9}">
<li><a href="javascript:showLiqInfo()"
class="map-top-btn map-btn-icon-lique-download"
onFocus="this.blur()" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)">액상화<br />위험지도<br />다운로드
</a></li>
</c:if>
</ul>
</div>
<!-- 지도 상단 컨트롤 끝 -->
<!-- 지도 오른쪽 컨트롤 시작 -->
<div class="map-right-control-wrapper">
<div class="sidebar-right-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<!-- 지도제어 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">지도제어</div>
<ul class="map-right-btn-group">
<li class="row-all"><a href="javascript:zoomMax();"
class="map-right-btn map-btn-icon-all">전체</a></li>
<li><a href="javascript:zoomIn();"
class="map-right-btn map-btn-icon-zoom-in">확대</a></li>
<li><a href="javascript:zoomOut();"
class="map-right-btn map-btn-icon-zoom-out">축소</a></li>
<li><a href="javascript:onSearchHole();"
class="map-right-btn map-btn-icon-choice">선택</a></li>
<li><a href="javascript:move();"
class="map-right-btn map-btn-icon-move">이동</a></li>
<li><a href="javascript:onSearchProject();"
class="map-right-btn map-btn-icon-business">사업선택</a></li>
<li><a href="javascript:onSearchArea();"
class="map-right-btn map-btn-icon-area-choice">영역선택</a></li>
<li><a href="javascript:saveToImage();"
class="map-right-btn map-btn-icon-screen">화면저장</a></li>
<li><a href="javascript:onAreaSearch();"
class="map-right-btn map-btn-icon-search">영역검색</a></li>
<li><a href="javascript:onCalDistance();"
class="map-right-btn map-btn-icon-distance">거리</a></li>
<li><a href="javascript:onCalArea();"
class="map-right-btn map-btn-icon-area">면적</a></li>
<li><a href="javascript:onIndexMap();"
class="map-right-btn map-btn-icon-index-map">인댁스앱</a></li>
<li>
<a href="javascript:onSearchJiban();"
class="map-right-btn map-btn-icon-choice">지반선택</a>
</li>
</ul>
</div>
<!-- 지도제어 끝 -->
<!-- 그리기도구 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">그리기도구</div>
<ul class="map-right-btn-group">
<li><a href="javascript:addDrawLine();"
class="map-right-btn map-btn-icon-line">선</a></li>
<li><a href="javascript:addDrawTriangle();"
class="map-right-btn map-btn-icon-triangle">삼각형</a></li>
<li><a href="javascript:addDrawCircle();"
class="map-right-btn map-btn-icon-circle">원</a></li>
<li><a href="javascript:addDrawBox();"
class="map-right-btn map-btn-icon-square">사각형</a></li>
<li><a href="javascript:removeDraw();"
class="map-right-btn map-btn-icon-delete">삭제</a></li>
<li><a href="javascript:removeAllDraw();"
class="map-right-btn map-btn-icon-delete-all">전체삭제</a></li>
</ul>
</div>
<!-- 그리기도구 끝 -->
</div>
<!-- 지도 오른쪽 컨트롤 끝 -->
</div>
</div>
<!-- 지도 시작 -->
<div class="map-wrapper">
<div id="map" class="map-area"></div>
</div>
<!-- 지도 끝 -->
</div>
<!-- 컨텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
</body>
<!-- 팝업 시작 -->
<div id="popup_type_1" class="kc-popup" style="display:none;">
<div class="k-popup-edit-form">
<div class="k-edit-form-container">
<!-- 팝업 컨텐츠 시작 -->
<div class="popup-content-wrapper">
<div class="page-sidebar" id = "pageTest" style="height: 40px;">
<div class="map-left-tab-wrapper">
<ul class="map-left-tab-group">
<li class="active">
<a href="#test1" id="test1" data-toggle="tab" class="tab-search" aria-expanded="true"> 사업정보 </a>
</li>
<li class="">
<a href="#test2" id="test2" data-toggle="tab" class="tab-search" aria-expanded="false"> 시추공정보 </a>
</li>
<li class="">
<a href="#test3" id="test3" data-toggle="tab" class="tab-search" aria-expanded="false"> 지층정보 </a>
</li>
</ul>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>사업정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="15%">
<col width="40%">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">구분</th>
<th scope="col">메타데이타</th>
<th scope="col">조사명</th>
<th scope="col">조사기간</th>
<th scope="col">다운로드</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center" id="sichClassName"></td>
<td class="t-center" id="sichMetaData"></td>
<td class="t-center" id="sichProjectCode"></td>
<td class="t-center" id="sichProjectDate">~</td>
<td class="t-center" id="sichProjectDown">
<a href="javascript:void(0);" class="icon icon-download" title="다운로드">다운로드</a>
</td>
</tr>
</tbody>
<thead>
<tr>
<th scope="col" colspan="5">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-left" colspan="5"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>등록된 시험정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="auto">
</colgroup>
<tbody>
<tr>
<td class="td-head" rowspan="2">기본현장시험</td>
<td class="td-head">기본측정</td>
<td id="basicTest">표준관입시험</td>
</tr>
<tr>
<td class="td-head">현장시험</td>
<td id="fieldTest">현장수압시험, 현장투수시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">토사시험</td>
<td id="sandInfoTest">입도시험, 반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">암석시험</td>
<td id="rockPointloadTest">반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">물리검층</td>
<td id="geoLoggingTest">하향식탄성파, 밀도검층</td>
</tr>
<tr>
<td class="td-head" colspan="2">기본물성시험</td>
<td id="sampleInfoTest">기본물성시험</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row" style="display: none;">
<h1 class="page-title-1depth"><span>데이터 품질등급</span></h1>
<div class="rating-star" id="quality">
<span></span>
<span></span>
<span></span>
<span></span>
<span class="star-off"></span>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>시추공 일반정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="auto">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">굴진심도</th>
<th scope="col">표고</th>
<th scope="col">지하수위</th>
</tr>
</thead>
<tbody id="sichProjectInfo">
<tr>
<td class="t-center">1</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">2</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">3</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 팝업 컨텐츠 끝 -->
</div>
</div>
</div>
<script>
var popup1 = $("#popup_type_1");
popup1.kendoWindow({
animation: false,
width: 900,
minWidth: 900,
height: 600,
minHeight: 600,
modal: true,
scrollable: true,
resizable: true,
pinned: true,
title: "사업별 시추공 상세정보"
});
function popupDataOpen(projectCode){
/* var params = "projectCode="+"B7328"+"&pcode="+"B7328"; */
var params = "projectCode="+projectCode+"&pcode="+projectCode;
$.ajax({
url : "/map/mapSichInformation.do",
method : "post",
data : params,
success : function(data){
console.log(data);
console.log(data.result[0].holeCode);
$("#sichClassName").html(data.project.className);
$("#sichProjectCode").html('<a href=# onClick="javascript:preView(\''+data.project.projectCode+'\')" style="cursor: pointer;">'+data.project.projectName+'</a>');
$("#sichMetaData").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
if(data.project.projectStartDate == null || data.project.projectEndDate == null){
}else{
$("#sichProjectDate").html(data.project.projectStartDate+"~"+data.project.projectEndDate);
}
$("#sichProjectDown").html('<a href="javascript:downloadNew(\''+data.project.projectCode+'\',\''+data.project.projectCode+'.zip\',\''+data.userId+'\')" class="icon icon-download" title="다운로드">다운로드</a>');
var text ="";
for(var i=0; i<data.hole.length; i++){
text += '<tr>';
text += '<td class="t-center">'+i+'</td>';
text += data.hole[i].depth != null ? '<td class="t-right">'+data.hole[i].depth+'</td>' : '<td class="t-right"></td>';
text += data.hole[i].el != null ? '<td class="t-right">'+data.hole[i].el+'</td>' : '<td class="t-right"></td>';
if(data.hole.wl == "-99999"){
text +='<td class="t-right">심도이하</td></tr>'
}else{
text += data.hole[i].wl != null ? '<td class="t-right">'+data.hole[i].wl+'</td>' : '<td class="t-right"></td>';
}
}
$("#sichProjectInfo").html(text);
var basicTestText = '';
var fieldTest = '';
var sandInfoTest = '';
var rockPointloadTest = '';
var geoLoggingTest = '';
var sampleInfoTest = '';
basicTestText += data.projectCount.stanSpt >0 ? "표준관입시험,": "";
basicTestText += data.projectCount.stanSlickenside >0 ? "절리간격,": "";
basicTestText += data.projectCount.stanTcrrqd >0 ? "TCR/RQD,": "";
basicTestText += data.projectCount.stanDsf >0 ? "DSF,": "";
basicTestText += data.projectCount.stanRmr >0 ? "RMR,": "";
basicTestText += data.projectCount.stanQ >0 ? "Q,": "";
basicTestText = basicTestText.substr(0, basicTestText.length - 1);
$("#basicTest").html(basicTestText);
fieldTest += data.projectCount.fieldWaterpressure >0 ? "현장수압시험,": "";
fieldTest += data.projectCount.fieldPermeablity >0 ? "현장투수시험,": "";
fieldTest += data.projectCount.fieldPressuremeter >0 ? "공내재하시험,": "";
fieldTest += data.projectCount.fieldConePenetration >0 ? "현장투수시험,": "";
fieldTest = fieldTest.substr(0, fieldTest.length - 1);
$("#fieldTest").html(fieldTest);
sandInfoTest += data.projectCount.sandClassification >0 ? "입도시험,": "";
sandInfoTest += data.projectCount.sandCbr >0 ? "CBR시험,": "";
sandInfoTest += data.projectCount.sandConsolidation >0 ? "압밀시험,": "";
sandInfoTest += data.projectCount.sandUnconfinedUsual >0 ? "일축압축시험,": "";
sandInfoTest += data.projectCount.sandTriaxial >0 ? "삼축압축시험,": "";
sandInfoTest += data.projectCount.sandResonant >0 ? "공진주,": "";
sandInfoTest += data.projectCount.sandRepeatedTriaxial >0 ? "반복삼축시험,": "";
sandInfoTest = sandInfoTest.substr(0, sandInfoTest.length - 1);
$("#sandInfoTest").html(sandInfoTest);
rockPointloadTest += data.projectCount.rockUniaxial >0 ? "일축압축시험,": "";
rockPointloadTest += data.projectCount.rockTriaxial >0 ? "삼축압축시험,": "";
rockPointloadTest += data.projectCount.rockPointload >0 ? "점하중시험,": "";
rockPointloadTest += data.projectCount.rockJointshear >0 ? "절리면전단시험,": "";
rockPointloadTest += data.projectCount.rockResonant >0 ? "공진주,": "";
rockPointloadTest += data.projectCount.rockRepeatedTriaxial >0 ? "반복삼축시험,": "";
rockPointloadTest = rockPointloadTest.substr(0, rockPointloadTest.length - 1);
$("#rockPointloadTest").html(rockPointloadTest);
geoLoggingTest += data.projectCount.boreholeWave >0 ? "PS검층,": "";
geoLoggingTest += data.projectCount.density >0 ? "밀도검층,": "";
geoLoggingTest += data.projectCount.downhole >0 ? "하향식탄성파,": "";
geoLoggingTest = geoLoggingTest.substr(0, geoLoggingTest.length - 1);
$("#geoLoggingTest").html(geoLoggingTest);
$("#sampleInfoTest").html("기본물성시험");
var qulityText = '';
if(data.projectCount.qualityInformation >8000){
qulityText += '<span></span><span></span><span></span><span></span><span></span>';
}else if(data.projectCount.qualityInformation >6000){
qulityText += '<span></span><span></span><span></span><span></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >4000){
qulityText += '<span></span><span></span><span></span><span class="star-off"></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >2000){
qulityText += '<span></span><span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}else{
qulityText += '<span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}
$("#quality").html(qulityText);
moveToExtent(data.bbox.minx, data.bbox.miny, data.bbox.maxx, data.bbox.maxy);
addProjectHoles(data.project.projectCode);
},
error : function(){
alert("오류입니다.");
},
complete: function(data){
$(".k-edit-form-container").css("width", "100%");
$(".contents-row .table-scrollable").css("overflow-x", "hidden");
popupData1.open();
popupData1.center();
}
});
$("#pageTest").css("height", 50);
$("#pageTest").css("min-height", "");
$("#pageTest").css("padding-left", 0);
$("#pageTest").css("padding-right", 5);
$("#test1").css("padding-left", 100);
$("#test2").css("padding-left", 100);
$("#test3").css("padding-left", 100);
}
$("#popup_open_1").kendoButton({
click: function() {
popupData1.open();
}
});
var popupData1 = popup1.data("kendoWindow");
popupData1.center();
function downloadNew(mId, fName) {
var left = (screen.width) / 2 - 350;
var top = (screen.height) / 2 - 450;
// 다운로드 목적 추가(수정)
downloadWin = window.open("/map/downloadPurposeNew.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=yes,width=793,height=760,left=" + left + ",top=" + top);
downloadWin.focus();
}
/** 미리보기 * */
function preView(mId) {
preViewWin = window.open("/map/preview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=484,height=520,left=0,top=0");
preViewWin.focus();
}
/** 메타데이터 조회 * */
function openMetadata(mId) {
metadataWin = window.open("/map/metaDataView.do?mid=" + mId, "metadataWin", "title=no,toolbar=no,scrollbars=auto,width=600,height=600,left=0,top=0");
metadataWin.focus();
}
</script>
<!-- 팝업 끝 -->
</html>

View File

@ -1,654 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/include/inc_map_head_2021_new.jsp"%>
<link rel="stylesheet"
href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css"
type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script>
<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DrawFeature.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript">
$(document).ready(function() {
});
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
function Loading() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
}
function LoadingShow() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var top = (screen.availHeight / 2) - 100 + 'px';
var left = (screen.availWidth / 2) + 100 + 'px';
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:"+top+"; margin-left:"+left+"; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
$("#mask").show();
}
</script>
<%
String pcode = request.getParameter("pcode");
String mapGbn = request.getParameter("mapGbn");
System.out.println("pCode : " + pcode);
if (pcode != null) {
%>
<c:set var="pcode" value="<%=pcode%>" />
<c:set var="mapGbn" value="<%=mapGbn%>" />
<script>
openDetail2('<c:out value="${pcode}" />');
</script>
<%
}
%>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<c:out value="${mapGbn}"/>" />
</form>
<!-- 페이지 컨테이너 시작 -->
<section class="page-container">
<div class="page-content-wrapper map-division-add">
<!-- <IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME> -->
<c:import url="/map/mapLeft.do" />
<!-- 컨텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<div class="map-control-wrapper">
<!-- 지도 상단 컨트롤 시작 -->
<div class="map-top-control-wrapper">
<div class="sidebar-top-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<ul class="map-top-btn-group">
<li><a href="javascript:showSichudan();"
class="map-top-btn map-btn-icon-section">시추<br />단면도
</a></li>
<li><a href="javascript:showJusangdo();"
class="map-top-btn map-btn-icon-column">시추<br />주상도
</a></li>
<li><a href="javascript:showSichuInfo();"
class="map-top-btn map-btn-icon-info">정보<br />보기
</a></li>
<!-- <li><a href="javascript:show3dProject();"
class="map-top-btn map-btn-icon-3D">3차원</a></li> -->
<li><a href="javascript:showSichuDownload();"
class="map-top-btn map-btn-icon-dril-download">시추공<br />다운로드
</a></li>
<li><a href="javascript:jibanModelDownload();"
class="map-top-btn map-btn-icon-dril-download">지반모델<br />다운로드
</a></li>
<li><a href="javascript:undergroundInfo();"
class="map-top-btn map-btn-icon-geo-analysis">지하<br />안전평가
</a></li>
<li><a href="javascript:showLoInfo();"
class="map-top-btn map-btn-icon-info">측선좌표<br />리스트
</a></li>
<!-- <li>
<a href="#" class="map-top-btn map-btn-icon-geo-analysis">지반분석<br />정보</a>
</li>
<li>
<a href="#" class="map-top-btn map-btn-icon-lique-control">액상화<br />위험지도<br />제어</a>
</li> -->
<c:if test="${params.cls == 3 || params.cls == 9}">
<li><a href="javascript:showLiqInfo()"
class="map-top-btn map-btn-icon-lique-download"
onFocus="this.blur()" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)">액상화<br />위험지도<br />다운로드
</a></li>
</c:if>
</ul>
</div>
<!-- 지도 상단 컨트롤 끝 -->
<!-- 지도 오른쪽 컨트롤 시작 -->
<div class="map-right-control-wrapper">
<div class="sidebar-right-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<!-- 지도제어 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">지도제어</div>
<ul class="map-right-btn-group">
<li class="row-all"><a href="javascript:zoomMax();"
class="map-right-btn map-btn-icon-all">전체</a></li>
<li><a href="javascript:zoomIn();"
class="map-right-btn map-btn-icon-zoom-in">확대</a></li>
<li><a href="javascript:zoomOut();"
class="map-right-btn map-btn-icon-zoom-out">축소</a></li>
<li><a href="javascript:onSearchHole();"
class="map-right-btn map-btn-icon-choice">선택</a></li>
<li><a href="javascript:move();"
class="map-right-btn map-btn-icon-move">이동</a></li>
<li><a href="javascript:onSearchProject();"
class="map-right-btn map-btn-icon-business">사업선택</a></li>
<li><a href="javascript:onSearchArea();"
class="map-right-btn map-btn-icon-area-choice">영역선택</a></li>
<li><a href="javascript:saveToImage();"
class="map-right-btn map-btn-icon-screen">화면저장</a></li>
<li><a href="javascript:onAreaSearch();"
class="map-right-btn map-btn-icon-search">영역검색</a></li>
<li><a href="javascript:onCalDistance();"
class="map-right-btn map-btn-icon-distance">거리</a></li>
<li><a href="javascript:onCalArea();"
class="map-right-btn map-btn-icon-area">면적</a></li>
<li><a href="javascript:onIndexMap();"
class="map-right-btn map-btn-icon-index-map">인댁스앱</a></li>
<li>
<a href="javascript:onSearchJiban();"
class="map-right-btn map-btn-icon-choice">지반선택</a>
</li>
</ul>
</div>
<!-- 지도제어 끝 -->
<!-- 그리기도구 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">그리기도구</div>
<ul class="map-right-btn-group">
<li><a href="javascript:addDrawLine();"
class="map-right-btn map-btn-icon-line">선</a></li>
<li><a href="javascript:addDrawTriangle();"
class="map-right-btn map-btn-icon-triangle">삼각형</a></li>
<li><a href="javascript:addDrawCircle();"
class="map-right-btn map-btn-icon-circle">원</a></li>
<li><a href="javascript:addDrawBox();"
class="map-right-btn map-btn-icon-square">사각형</a></li>
<li><a href="javascript:removeDraw();"
class="map-right-btn map-btn-icon-delete">삭제</a></li>
<li><a href="javascript:removeAllDraw();"
class="map-right-btn map-btn-icon-delete-all">전체삭제</a></li>
</ul>
</div>
<!-- 그리기도구 끝 -->
</div>
<!-- 지도 오른쪽 컨트롤 끝 -->
</div>
</div>
<!-- 지도 시작 -->
<div class="map-wrapper">
<div id="map" class="map-area"></div>
</div>
<!-- 지도 끝 -->
</div>
<!-- 컨텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
</body>
<!-- 팝업 시작 -->
<div id="popup_type_1" class="kc-popup" style="display:none;">
<div class="k-popup-edit-form">
<div class="k-edit-form-container">
<!-- 팝업 컨텐츠 시작 -->
<div class="popup-content-wrapper">
<div class="contents-row">
<h1 class="page-title-1depth"><span>사업정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="15%">
<col width="40%">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">구분</th>
<th scope="col">메타데이타</th>
<th scope="col">조사명</th>
<th scope="col">조사기간</th>
<th scope="col">다운로드</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center" id="sichClassName"></td>
<td class="t-center" id="sichMetaData"></td>
<td class="t-center" id="sichProjectCode"></td>
<td class="t-center" id="sichProjectDate">~</td>
<td class="t-center" id="sichProjectDown">
<a href="javascript:void(0);" class="icon icon-download" title="다운로드">다운로드</a>
</td>
</tr>
</tbody>
<thead>
<tr>
<th scope="col" colspan="5">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-left" colspan="5"></td>
</tr>
</tbody>
</table>
</div>
</div>
<%-- <div class="contents-row">
<h1 class="page-title-1depth"><span>등록된 시험정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="auto">
</colgroup>
<tbody>
<tr>
<td class="td-head" rowspan="2">기본현장시험</td>
<td class="td-head">기본측정</td>
<td id="basicTest">표준관입시험</td>
</tr>
<tr>
<td class="td-head">현장시험</td>
<td id="fieldTest">현장수압시험, 현장투수시험</td>
</tr>
</tbody>
</table>
</div>
</div> --%>
<div class="contents-row">
<h1 class="page-title-1depth"><span>필수시험</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="auto">
<col width="25%">
</colgroup>
<tbody>
<tr>
<th class="t-center">시험</th>
<th class="t-center">시험명</th>
<th class="t-center">시추공 시험 입력 개수<br>(시추공 시험입력 개수/총 시추공 개수)</th>
<th class="t-center">시추공 시험 입력률(%)</th>
</tr>
<tr>
<td class="td-head" >기본현장시험 - 기본측정 </td>
<td class="t-center" id="basicTes2t">표준관입시험</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
<tr>
<td class="td-head" >기본현장시험 - 현장시험 </td>
<td class="t-center" id="fieldTest3">현장수압시험</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>선택시험</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="auto">
<col width="25%">
</colgroup>
<tbody>
<tr>
<th class="t-center">시험</th>
<th class="t-center">시험명</th>
<th class="t-center">시추공 시험 입력 개수<br>(시추공 시험입력 개수/총 시추공 개수)</th>
<th class="t-center">시추공 시험 입력률(%)</th>
</tr>
<tr>
<td class="td-head" >토사시험</td>
<td class="t-center" id="sandInfoTest">입도시험, 반복삼축시험</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
<tr>
<td class="td-head" >암석시험</td>
<td class="t-center" id="rockPointloadTest">반복삼축시험</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
<tr>
<td class="td-head" >물리검층</td>
<td class="t-center" id="geoLoggingTest">하향식탄성파, 밀도검층</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
<tr>
<td class="td-head">기본물성시험</td>
<td class="t-center" id="sampleInfoTest">기본물성시험</td>
<td class="t-center">3/3</td>
<td class="t-center">100%</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>시추공 일반정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="auto">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">굴진심도</th>
<th scope="col">표고</th>
<th scope="col">지하수위</th>
</tr>
</thead>
<tbody id="sichProjectInfo">
<tr>
<td class="t-center">1</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">2</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">3</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 팝업 컨텐츠 끝 -->
</div>
</div>
</div>
<script>
var popup1 = $("#popup_type_1");
popup1.kendoWindow({
animation: false,
width: 900,
minWidth: 900,
height: 600,
minHeight: 600,
modal: true,
scrollable: true,
resizable: true,
pinned: true,
title: "사업별 시추공 상세정보"
});
function popupDataOpen(projectCode){
/* var params = "projectCode="+"B7328"+"&pcode="+"B7328"; */
var params = "projectCode="+projectCode+"&pcode="+projectCode;
$.ajax({
url : "/map/mapSichInformation.do",
method : "post",
data : params,
success : function(data){
console.log(data);
console.log(data.result[0].holeCode);
$("#sichClassName").html(data.project.className);
$("#sichProjectCode").html('<a href=# onClick="javascript:preView(\''+data.project.projectCode+'\')" style="cursor: pointer;">'+data.project.projectName+'</a>');
$("#sichMetaData").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
if(data.project.projectStartDate == null || data.project.projectEndDate == null){
}else{
$("#sichProjectDate").html(data.project.projectStartDate+"~"+data.project.projectEndDate);
}
$("#sichProjectDown").html('<a href="javascript:downloadNew(\''+data.project.projectCode+'\',\''+data.project.projectCode+'.zip\',\''+data.userId+'\')" class="icon icon-download" title="다운로드">다운로드</a>');
var text ="";
for(var i=0; i<data.hole.length; i++){
text += '<tr>';
text += '<td class="t-center">'+i+'</td>';
text += data.hole[i].depth != null ? '<td class="t-right">'+data.hole[i].depth+'</td>' : '<td class="t-right"></td>';
text += data.hole[i].el != null ? '<td class="t-right">'+data.hole[i].el+'</td>' : '<td class="t-right"></td>';
if(data.hole.wl == "-99999"){
text +='<td class="t-right">심도이하</td></tr>'
}else{
text += data.hole[i].wl != null ? '<td class="t-right">'+data.hole[i].wl+'</td>' : '<td class="t-right"></td>';
}
}
$("#sichProjectInfo").html(text);
var basicTestText = '';
var fieldTest = '';
var sandInfoTest = '';
var rockPointloadTest = '';
var geoLoggingTest = '';
var sampleInfoTest = '';
basicTestText += data.projectCount.stanSpt >0 ? "표준관입시험,": "";
basicTestText += data.projectCount.stanSlickenside >0 ? "절리간격,": "";
basicTestText += data.projectCount.stanTcrrqd >0 ? "TCR/RQD,": "";
basicTestText += data.projectCount.stanDsf >0 ? "DSF,": "";
basicTestText += data.projectCount.stanRmr >0 ? "RMR,": "";
basicTestText += data.projectCount.stanQ >0 ? "Q,": "";
basicTestText = basicTestText.substr(0, basicTestText.length - 1);
$("#basicTest").html(basicTestText);
fieldTest += data.projectCount.fieldWaterpressure >0 ? "현장수압시험,": "";
fieldTest += data.projectCount.fieldPermeablity >0 ? "현장투수시험,": "";
fieldTest += data.projectCount.fieldPressuremeter >0 ? "공내재하시험,": "";
fieldTest += data.projectCount.fieldConePenetration >0 ? "현장투수시험,": "";
fieldTest = fieldTest.substr(0, fieldTest.length - 1);
$("#fieldTest").html(fieldTest);
sandInfoTest += data.projectCount.sandClassification >0 ? "입도시험,": "";
sandInfoTest += data.projectCount.sandCbr >0 ? "CBR시험,": "";
sandInfoTest += data.projectCount.sandConsolidation >0 ? "압밀시험,": "";
sandInfoTest += data.projectCount.sandUnconfinedUsual >0 ? "일축압축시험,": "";
sandInfoTest += data.projectCount.sandTriaxial >0 ? "삼축압축시험,": "";
sandInfoTest += data.projectCount.sandResonant >0 ? "공진주,": "";
sandInfoTest += data.projectCount.sandRepeatedTriaxial >0 ? "반복삼축시험,": "";
sandInfoTest = sandInfoTest.substr(0, sandInfoTest.length - 1);
$("#sandInfoTest").html(sandInfoTest);
rockPointloadTest += data.projectCount.rockUniaxial >0 ? "일축압축시험,": "";
rockPointloadTest += data.projectCount.rockTriaxial >0 ? "삼축압축시험,": "";
rockPointloadTest += data.projectCount.rockPointload >0 ? "점하중시험,": "";
rockPointloadTest += data.projectCount.rockJointshear >0 ? "절리면전단시험,": "";
rockPointloadTest += data.projectCount.rockResonant >0 ? "공진주,": "";
rockPointloadTest += data.projectCount.rockRepeatedTriaxial >0 ? "반복삼축시험,": "";
rockPointloadTest = rockPointloadTest.substr(0, rockPointloadTest.length - 1);
$("#rockPointloadTest").html(rockPointloadTest);
geoLoggingTest += data.projectCount.boreholeWave >0 ? "PS검층,": "";
geoLoggingTest += data.projectCount.density >0 ? "밀도검층,": "";
geoLoggingTest += data.projectCount.downhole >0 ? "하향식탄성파,": "";
geoLoggingTest = geoLoggingTest.substr(0, geoLoggingTest.length - 1);
$("#geoLoggingTest").html(geoLoggingTest);
$("#sampleInfoTest").html("기본물성시험");
var qulityText = '';
if(data.projectCount.qualityInformation >8000){
qulityText += '<span></span><span></span><span></span><span></span><span></span>';
}else if(data.projectCount.qualityInformation >6000){
qulityText += '<span></span><span></span><span></span><span></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >4000){
qulityText += '<span></span><span></span><span></span><span class="star-off"></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >2000){
qulityText += '<span></span><span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}else{
qulityText += '<span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}
/* $("#quality").html(qulityText); */
moveToExtent(data.bbox.minx, data.bbox.miny, data.bbox.maxx, data.bbox.maxy);
addProjectHoles(data.project.projectCode);
},
error : function(){
alert("오류입니다.");
},
complete: function(data){
$(".k-edit-form-container").css("width", "100%");
$(".contents-row .table-scrollable").css("overflow-x", "hidden");
popupData1.open();
popupData1.center();
}
});
}
$("#popup_open_1").kendoButton({
click: function() {
popupData1.open();
}
});
var popupData1 = popup1.data("kendoWindow");
popupData1.center();
function downloadNew(mId, fName) {
var left = (screen.width) / 2 - 350;
var top = (screen.height) / 2 - 450;
// 다운로드 목적 추가(수정)
downloadWin = window.open("/map/downloadPurposeNew.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=yes,width=793,height=760,left=" + left + ",top=" + top);
downloadWin.focus();
}
/** 미리보기 * */
function preView(mId) {
preViewWin = window.open("/map/preview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=484,height=520,left=0,top=0");
preViewWin.focus();
}
/** 메타데이터 조회 * */
function openMetadata(mId) {
metadataWin = window.open("/map/metaDataView.do?mid=" + mId, "metadataWin", "title=no,toolbar=no,scrollbars=auto,width=600,height=600,left=0,top=0");
metadataWin.focus();
}
</script>
<!-- 팝업 끝 -->
</html>

View File

@ -1,599 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/include/inc_map_head_2021_new.jsp"%>
<link rel="stylesheet"
href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css"
type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script>
<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/DrawFeature.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript">
$(document).ready(function() {
});
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
function Loading() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:300px; margin-left:750px; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
}
function LoadingShow() {
$("#mask").remove();
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var top = (screen.availHeight / 2) - 100 + 'px';
var left = (screen.availWidth / 2) + 100 + 'px';
var mask = "<div id='mask' class='loadingImg' style='position:absolute; z-index:9000; background-color: rgb(255 255 255); display:none; left:0; top:0;'></div>";
var loadingImg ='';
loadingImg +=" <div id='loadingImg' >";
loadingImg +=" <img src='/images/ajax-loader4.gif' style='position:absolute; z-index:9500; text-align:center; display:block; margin-top:"+top+"; margin-left:"+left+"; '/>";
loadingImg += "</div>";
$('body')
.append(mask)
$('#mask').css({
'width' : maskWidth,
'height': maskHeight,
'opacity' :'0.3'
});
$('.loadingImg').append(loadingImg);
$("#mask").show();
}
</script>
<%
String pcode = request.getParameter("pcode");
String mapGbn = request.getParameter("mapGbn");
System.out.println("pCode : " + pcode);
if (pcode != null) {
%>
<c:set var="pcode" value="<%=pcode%>" />
<c:set var="mapGbn" value="<%=mapGbn%>" />
<script>
openDetail2('<c:out value="${pcode}" />');
</script>
<%
}
%>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<c:out value="${mapGbn}"/>" />
</form>
<!-- 페이지 컨테이너 시작 -->
<section class="page-container">
<div class="page-content-wrapper map-division-add">
<!-- <IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME> -->
<c:import url="/map/mapLeft.do" />
<!-- 컨텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<div class="map-control-wrapper">
<!-- 지도 상단 컨트롤 시작 -->
<div class="map-top-control-wrapper">
<div class="sidebar-top-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<ul class="map-top-btn-group">
<li><a href="javascript:showSichudan();"
class="map-top-btn map-btn-icon-section">시추<br />단면도
</a></li>
<li><a href="javascript:showJusangdo();"
class="map-top-btn map-btn-icon-column">시추<br />주상도
</a></li>
<li><a href="javascript:showSichuInfo();"
class="map-top-btn map-btn-icon-info">정보<br />보기
</a></li>
<!-- <li><a href="javascript:show3dProject();"
class="map-top-btn map-btn-icon-3D">3차원</a></li> -->
<li><a href="javascript:showSichuDownload();"
class="map-top-btn map-btn-icon-dril-download">시추공<br />다운로드
</a></li>
<li><a href="javascript:jibanModelDownload();"
class="map-top-btn map-btn-icon-dril-download">지반모델<br />다운로드
</a></li>
<li><a href="javascript:undergroundInfo();"
class="map-top-btn map-btn-icon-geo-analysis">지하<br />안전평가
</a></li>
<li><a href="javascript:showLoInfo();"
class="map-top-btn map-btn-icon-info">측선좌표<br />리스트
</a></li>
<!-- <li>
<a href="#" class="map-top-btn map-btn-icon-geo-analysis">지반분석<br />정보</a>
</li>
<li>
<a href="#" class="map-top-btn map-btn-icon-lique-control">액상화<br />위험지도<br />제어</a>
</li> -->
<c:if test="${params.cls == 3 || params.cls == 9}">
<li><a href="javascript:showLiqInfo()"
class="map-top-btn map-btn-icon-lique-download"
onFocus="this.blur()" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)">액상화<br />위험지도<br />다운로드
</a></li>
</c:if>
</ul>
</div>
<!-- 지도 상단 컨트롤 끝 -->
<!-- 지도 오른쪽 컨트롤 시작 -->
<div class="map-right-control-wrapper">
<div class="sidebar-right-toggler">
<a href="javascript:;" class="">Sidebar 버튼</a>
</div>
<!-- 지도제어 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">지도제어</div>
<ul class="map-right-btn-group">
<li class="row-all"><a href="javascript:zoomMax();"
class="map-right-btn map-btn-icon-all">전체</a></li>
<li><a href="javascript:zoomIn();"
class="map-right-btn map-btn-icon-zoom-in">확대</a></li>
<li><a href="javascript:zoomOut();"
class="map-right-btn map-btn-icon-zoom-out">축소</a></li>
<li><a href="javascript:onSearchHole();"
class="map-right-btn map-btn-icon-choice">선택</a></li>
<li><a href="javascript:move();"
class="map-right-btn map-btn-icon-move">이동</a></li>
<li><a href="javascript:onSearchProject();"
class="map-right-btn map-btn-icon-business">사업선택</a></li>
<li><a href="javascript:onSearchArea();"
class="map-right-btn map-btn-icon-area-choice">영역선택</a></li>
<li><a href="javascript:saveToImage();"
class="map-right-btn map-btn-icon-screen">화면저장</a></li>
<li><a href="javascript:onAreaSearch();"
class="map-right-btn map-btn-icon-search">영역검색</a></li>
<li><a href="javascript:onCalDistance();"
class="map-right-btn map-btn-icon-distance">거리</a></li>
<li><a href="javascript:onCalArea();"
class="map-right-btn map-btn-icon-area">면적</a></li>
<li><a href="javascript:onIndexMap();"
class="map-right-btn map-btn-icon-index-map">인댁스앱</a></li>
<li>
<a href="javascript:onSearchJiban();"
class="map-right-btn map-btn-icon-choice">지반선택</a>
</li>
</ul>
</div>
<!-- 지도제어 끝 -->
<!-- 그리기도구 시작 -->
<div class="map-right-control-group">
<div class="map-right-control-title">그리기도구</div>
<ul class="map-right-btn-group">
<li><a href="javascript:addDrawLine();"
class="map-right-btn map-btn-icon-line">선</a></li>
<li><a href="javascript:addDrawTriangle();"
class="map-right-btn map-btn-icon-triangle">삼각형</a></li>
<li><a href="javascript:addDrawCircle();"
class="map-right-btn map-btn-icon-circle">원</a></li>
<li><a href="javascript:addDrawBox();"
class="map-right-btn map-btn-icon-square">사각형</a></li>
<li><a href="javascript:removeDraw();"
class="map-right-btn map-btn-icon-delete">삭제</a></li>
<li><a href="javascript:removeAllDraw();"
class="map-right-btn map-btn-icon-delete-all">전체삭제</a></li>
</ul>
</div>
<!-- 그리기도구 끝 -->
</div>
<!-- 지도 오른쪽 컨트롤 끝 -->
</div>
</div>
<!-- 지도 시작 -->
<div class="map-wrapper">
<div id="map" class="map-area"></div>
</div>
<!-- 지도 끝 -->
</div>
<!-- 컨텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
</body>
<!-- 팝업 시작 -->
<div id="popup_type_1" class="kc-popup" style="display:none;">
<div class="k-popup-edit-form">
<div class="k-edit-form-container">
<!-- 팝업 컨텐츠 시작 -->
<div class="popup-content-wrapper">
<div class="contents-row">
<h1 class="page-title-1depth"><span>사업정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="15%">
<col width="40%">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">구분</th>
<th scope="col">메타데이타</th>
<th scope="col">조사명</th>
<th scope="col">조사기간</th>
<th scope="col">다운로드</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-center" id="sichClassName"></td>
<td class="t-center" id="sichMetaData"></td>
<td class="t-center" id="sichProjectCode"></td>
<td class="t-center" id="sichProjectDate">~</td>
<td class="t-center" id="sichProjectDown">
<a href="javascript:void(0);" class="icon icon-download" title="다운로드">다운로드</a>
</td>
</tr>
</tbody>
<thead>
<tr>
<th scope="col" colspan="5">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td class="t-left" colspan="5"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>등록된 시험정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="20%">
<col width="20%">
<col width="auto">
</colgroup>
<tbody>
<tr>
<td class="td-head" rowspan="2">기본현장시험</td>
<td class="td-head">기본측정</td>
<td id="basicTest">표준관입시험</td>
</tr>
<tr>
<td class="td-head">현장시험</td>
<td id="fieldTest">현장수압시험, 현장투수시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">토사시험</td>
<td id="sandInfoTest">입도시험, 반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">암석시험</td>
<td id="rockPointloadTest">반복삼축시험</td>
</tr>
<tr>
<td class="td-head" colspan="2">물리검층</td>
<td id="geoLoggingTest">하향식탄성파, 밀도검층</td>
</tr>
<tr>
<td class="td-head" colspan="2">기본물성시험</td>
<td id="sampleInfoTest">기본물성시험</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="contents-row" style="display: black;">
<h1 class="page-title-1depth"><span>데이터 품질등급</span></h1>
<div class="rating-star" id="quality">
<span></span>
<span></span>
<span></span>
<span class="star-off"></span>
<span class="star-off"></span>
</div>
</div>
<div class="contents-row">
<h1 class="page-title-1depth"><span>시추공 일반정보</span></h1>
<div class="table-scrollable">
<table class="table table-bordered">
<colgroup>
<col width="10%">
<col width="auto">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">굴진심도</th>
<th scope="col">표고</th>
<th scope="col">지하수위</th>
</tr>
</thead>
<tbody id="sichProjectInfo">
<tr>
<td class="t-center">1</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">2</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
<tr>
<td class="t-center">3</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
<td class="t-right">1.222</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 팝업 컨텐츠 끝 -->
</div>
</div>
</div>
<script>
var popup1 = $("#popup_type_1");
popup1.kendoWindow({
animation: false,
width: 900,
minWidth: 900,
height: 600,
minHeight: 600,
modal: true,
scrollable: true,
resizable: true,
pinned: true,
title: "사업별 시추공 상세정보"
});
function popupDataOpen(projectCode){
/* var params = "projectCode="+"B7328"+"&pcode="+"B7328"; */
var params = "projectCode="+projectCode+"&pcode="+projectCode;
$.ajax({
url : "/map/mapSichInformation.do",
method : "post",
data : params,
success : function(data){
console.log(data);
console.log(data.result[0].holeCode);
$("#sichClassName").html(data.project.className);
$("#sichProjectCode").html('<a href=# onClick="javascript:preView(\''+data.project.projectCode+'\')" style="cursor: pointer;">'+data.project.projectName+'</a>');
$("#sichMetaData").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
if(data.project.projectStartDate == null || data.project.projectEndDate == null){
}else{
$("#sichProjectDate").html(data.project.projectStartDate+"~"+data.project.projectEndDate);
}
$("#sichProjectDown").html('<a href="javascript:downloadNew(\''+data.project.projectCode+'\',\''+data.project.projectCode+'.zip\',\''+data.userId+'\')" class="icon icon-download" title="다운로드">다운로드</a>');
var text ="";
for(var i=0; i<data.hole.length; i++){
text += '<tr>';
text += '<td class="t-center">'+i+'</td>';
text += data.hole[i].depth != null ? '<td class="t-right">'+data.hole[i].depth+'</td>' : '<td class="t-right"></td>';
text += data.hole[i].el != null ? '<td class="t-right">'+data.hole[i].el+'</td>' : '<td class="t-right"></td>';
if(data.hole.wl == "-99999"){
text +='<td class="t-right">심도이하</td></tr>'
}else{
text += data.hole[i].wl != null ? '<td class="t-right">'+data.hole[i].wl+'</td>' : '<td class="t-right"></td>';
}
}
$("#sichProjectInfo").html(text);
var basicTestText = '';
var fieldTest = '';
var sandInfoTest = '';
var rockPointloadTest = '';
var geoLoggingTest = '';
var sampleInfoTest = '';
basicTestText += data.projectCount.stanSpt >0 ? "표준관입시험,": "";
basicTestText += data.projectCount.stanSlickenside >0 ? "절리간격,": "";
basicTestText += data.projectCount.stanTcrrqd >0 ? "TCR/RQD,": "";
basicTestText += data.projectCount.stanDsf >0 ? "DSF,": "";
basicTestText += data.projectCount.stanRmr >0 ? "RMR,": "";
basicTestText += data.projectCount.stanQ >0 ? "Q,": "";
basicTestText = basicTestText.substr(0, basicTestText.length - 1);
$("#basicTest").html(basicTestText);
fieldTest += data.projectCount.fieldWaterpressure >0 ? "현장수압시험,": "";
fieldTest += data.projectCount.fieldPermeablity >0 ? "현장투수시험,": "";
fieldTest += data.projectCount.fieldPressuremeter >0 ? "공내재하시험,": "";
fieldTest += data.projectCount.fieldConePenetration >0 ? "현장투수시험,": "";
fieldTest = fieldTest.substr(0, fieldTest.length - 1);
$("#fieldTest").html(fieldTest);
sandInfoTest += data.projectCount.sandClassification >0 ? "입도시험,": "";
sandInfoTest += data.projectCount.sandCbr >0 ? "CBR시험,": "";
sandInfoTest += data.projectCount.sandConsolidation >0 ? "압밀시험,": "";
sandInfoTest += data.projectCount.sandUnconfinedUsual >0 ? "일축압축시험,": "";
sandInfoTest += data.projectCount.sandTriaxial >0 ? "삼축압축시험,": "";
sandInfoTest += data.projectCount.sandResonant >0 ? "공진주,": "";
sandInfoTest += data.projectCount.sandRepeatedTriaxial >0 ? "반복삼축시험,": "";
sandInfoTest = sandInfoTest.substr(0, sandInfoTest.length - 1);
$("#sandInfoTest").html(sandInfoTest);
rockPointloadTest += data.projectCount.rockUniaxial >0 ? "일축압축시험,": "";
rockPointloadTest += data.projectCount.rockTriaxial >0 ? "삼축압축시험,": "";
rockPointloadTest += data.projectCount.rockPointload >0 ? "점하중시험,": "";
rockPointloadTest += data.projectCount.rockJointshear >0 ? "절리면전단시험,": "";
rockPointloadTest += data.projectCount.rockResonant >0 ? "공진주,": "";
rockPointloadTest += data.projectCount.rockRepeatedTriaxial >0 ? "반복삼축시험,": "";
rockPointloadTest = rockPointloadTest.substr(0, rockPointloadTest.length - 1);
$("#rockPointloadTest").html(rockPointloadTest);
geoLoggingTest += data.projectCount.boreholeWave >0 ? "PS검층,": "";
geoLoggingTest += data.projectCount.density >0 ? "밀도검층,": "";
geoLoggingTest += data.projectCount.downhole >0 ? "하향식탄성파,": "";
geoLoggingTest = geoLoggingTest.substr(0, geoLoggingTest.length - 1);
$("#geoLoggingTest").html(geoLoggingTest);
$("#sampleInfoTest").html("기본물성시험");
var qulityText = '';
if(data.projectCount.qualityInformation >8000){
qulityText += '<span></span><span></span><span></span><span></span><span></span>';
}else if(data.projectCount.qualityInformation >6000){
qulityText += '<span></span><span></span><span></span><span></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >4000){
qulityText += '<span></span><span></span><span></span><span class="star-off"></span><span class="star-off"></span>';
}else if(data.projectCount.qualityInformation >2000){
qulityText += '<span></span><span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}else{
qulityText += '<span></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span><span class="star-off"></span>';
}
/* $("#quality").html(qulityText); */
moveToExtent(data.bbox.minx, data.bbox.miny, data.bbox.maxx, data.bbox.maxy);
addProjectHoles(data.project.projectCode);
},
error : function(){
alert("오류입니다.");
},
complete: function(data){
$(".k-edit-form-container").css("width", "100%");
$(".contents-row .table-scrollable").css("overflow-x", "hidden");
popupData1.open();
popupData1.center();
}
});
}
$("#popup_open_1").kendoButton({
click: function() {
popupData1.open();
}
});
var popupData1 = popup1.data("kendoWindow");
popupData1.center();
function downloadNew(mId, fName) {
var left = (screen.width) / 2 - 350;
var top = (screen.height) / 2 - 450;
// 다운로드 목적 추가(수정)
downloadWin = window.open("/map/downloadPurposeNew.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=yes,width=793,height=760,left=" + left + ",top=" + top);
downloadWin.focus();
}
/** 미리보기 * */
function preView(mId) {
preViewWin = window.open("/map/preview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=484,height=520,left=0,top=0");
preViewWin.focus();
}
/** 메타데이터 조회 * */
function openMetadata(mId) {
metadataWin = window.open("/map/metaDataView.do?mid=" + mId, "metadataWin", "title=no,toolbar=no,scrollbars=auto,width=600,height=600,left=0,top=0");
metadataWin.focus();
}
</script>
<!-- 팝업 끝 -->
</html>

View File

@ -1,179 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>국토지반정보 포털시스템</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" type="text/css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/js/openlayers/theme/default/style.css" type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/openlayers/OpenLayers.js"></script>
<!-- <script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<!--<script language="JavaScript" type="text/javascript" src="http://map.vworld.kr/js/apis.do?type=Base&apiKey=C0548531-9A95-3C3C-910D-0FF997030FA0"></script> -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/proj4js/proj4js-compressed.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/DynamicMeasure.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/html2canvas.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/html2canvas.svg.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/download.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/main.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/map.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/left/left.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/map/main/design.js"></script>
<script language="javascript" >
// 3차원 모델링 팝업
function web3dPopup(){
web3d = window.open('/map/web3d.do','web3d','scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
}
function openDetail2(pcode) {
window.open("/map/detailProject.do?pcode=" + pcode ,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=550,height=300,left=0,top=0");
}
</script>
<%
String pcode = request.getParameter("pcode");
System.out.println("pCode : " + pcode);
if(pcode != null){
%>
<script>
openDetail2('<%=pcode%>');
</script>
<%}%>
</head>
<form name="frmMap" id="frmMap" action="" method="post">
<input type="hidden" id="mapGbn" name="mapGbn" value="<%=request.getParameter("mapGbn")%>"/>
</form>
<body bgcolor="#83A5D0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:fullScreen();">
<table style="width: 100%; height:100%; margin: 5px;" cellpadding="0" cellspacing="0">
<tr>
<td>
<IFRAME id="search_frame" name="search_frame" src="/map/mapLeft.do" width="220px" height="100%" frameborder="0" scrolling="no"></IFRAME>
</td>
<td valign="middle">
<img src="/images/map/arrow.png"
style="width:12px; cursor:hand;" id="arrow" name="on" onclick="javascript:frameResize();">
</td>
<td style="width: 100%; height: 100%">
<div id="map" style="width: 100%; height: 100%"></div>
</td>
<td>
<div style="width: 5px;"></div>
</td>
<td valign="top">
<div style="width: 100px;">
<!-- 정보열람 -->
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="/images/map/r_top01.gif"></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFFF">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="javascript:showSichudan()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)"><img src="/images/map/r01m01.gif" name="r01m01"></a></td>
<td><a href="javascript:showJusangdo()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m02','','/images/map/r01m02_on.gif',1)"><img src="/images/map/r01m02.gif" name="r01m02"></a></td>
</tr>
<tr>
<td><a href="javascript:showSichuInfo()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m03','','/images/map/r01m03_on.gif',1)"><img src="/images/map/r01m03_out.gif" name="r01m03"></a></td>
<td><a href="javascript:show3dProject()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m05','','/images/map/r01m05_on.gif',1)"><img src="/images/map/r01m05_out.gif" name="r01m05"></a></td>
</tr>
<tr>
<td><a href="javascript:showSichuDownload()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m06','','/images/map/r01m06_on.gif',1)"><img src="/images/map/r01m06.gif" name="r01m06"></a></td>
<td><a href="javascript:showLoInfo()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m07','','/images/map/r01m07_on.gif',1)"><img src="/images/map/r01m07.gif" name="r01m07"></a></td>
</tr>
<c:if test="${params.cls == 3 || params.cls == 9}">
<tr>
<td><a href="javascript:showLiqInfo()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r01m01','','/images/map/r01m01_on.gif',1)"><img src="/images/map/r01m01.gif" name="r01m08"></a></td>
<td></td>
</tr>
</c:if>
</table>
</td>
</tr>
</table>
<!-- 지도제어 -->
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="/images/map/r_top02.gif"></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFFF">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="javascript:zoomMax()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m01','','/images/map/r02m01_on.gif',1)"><img src="/images/map/r02m01.gif" name="r02m01" width="50" height="56"></a></td>
<td><a href="javascript:zoomIn()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m02','','/images/map/r02m02_on.gif',1)"><img src="/images/map/r02m02.gif" name="r02m02" width="50" height="56"></a></td>
</tr>
<tr>
<td><a href="javascript:zoomOut()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m03','','/images/map/r02m03_on.gif',1)"><img src="/images/map/r02m03.gif" name="r02m03" width="50" height="56"></a></td>
<td><a href="javascript:move()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m04','','/images/map/r02m04_on.gif',1)"><img src="/images/map/r02m04.gif" name="r02m04" width="50" height="56"></a></td>
</tr>
<tr>
<td><a href="javascript:onSearchHole()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m05','','/images/map/r02m05_on.gif',1)"><img src="/images/map/r02m05.gif" name="r02m05" width="50" height="56"></a></td>
<td><a href="javascript:onSearchArea()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m081','','/images/map/r03m081_on.gif',1)"><img src="/images/map/r03m081.gif" name="r03m081"></a></td>
</tr>
<tr>
<td><a href="javascript:onSearchProject()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m13','','/images/map/r02m13_on.gif',1)"><img src="/images/map/r02m13.gif" name="r02m13" width="50" height="56"></a></td>
<td></td>
</tr>
<tr>
<td><a href="javascript:saveToImage()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m08','','/images/map/r02m08_on.gif',1)"><img src="/images/map/r02m08.gif" name="r02m08" width="50" height="56"></a></td>
<td><a href="javascript:onAreaSearch()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m071','','/images/map/r03m071_on.gif',1)"><img src="/images/map/r03m071.gif" name="r03m071"></a></td>
</tr>
<tr>
<td><a href="javascript:onCalDistance()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m09','','/images/map/r02m09_on.gif',1)"><img src="/images/map/r02m09.gif" name="r02m09" width="50" height="56"></a></td>
<td><a href="javascript:onCalArea()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m10','','/images/map/r02m10_on.gif',1)"><img src="/images/map/r02m10.gif" name="r02m10" width="50" height="56"></a></td>
</tr>
<tr>
<td><a href="javascript:onIndexMap()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m11','','/images/map/r02m11_on.gif',1)"><img src="/images/map/r02m11.gif" name="r02m11" width="50" height="56"></a></td>
<td><a href="javascript:onLegendInfo()" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r02m12','','/images/map/r02m12_on.gif',1)"><img src="/images/map/r02m12.gif" name="r02m12" width="50" height="56"></a></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- 그리기도구 -->
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="/images/map/r_top03.gif"></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFFF">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="javascript:addDrawLine();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m01','','/images/map/r03m01_on.png',1)"><img src="/images/map/r03m01.png" name="r03m01" width="50" height="56"></a></td>
<td><a href="javascript:addDrawTriangle();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m02','','/images/map/r03m02_on.png',1)"><img src="/images/map/r03m02.png" name="r03m02" width="50" height="56"></a></td>
</tr>
<tr>
<td><a href="javascript:addDrawCircle();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m03','','/images/map/r03m03_on.png',1)"><img src="/images/map/r03m03.png" name="r03m03" width="50" height="56"></a></td>
<td><a href="javascript:addDrawBox();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m04','','/images/map/r03m04_on.png',1)"><img src="/images/map/r03m04.png" name="r03m04" width="50" height="56"></a></td>
</tr>
<tr>
<td><a href="javascript:removeDraw();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m05','','/images/map/r03m05_on.gif',1)"><img src="/images/map/r03m05.gif" name="r03m05" width="50" height="56"></a></td>
<td><a href="javascript:removeAllDraw();" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('r03m06','','/images/map/r03m06_on.gif',1)"><img src="/images/map/r03m06.gif" name="r03m06" width="50" height="56"></a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>

View File

@ -30,6 +30,79 @@ if(document.getElementById("cls").value == '2'){
addLoadEvent(initApp);
}
function showToast(message) {
// 1. 요소를 생성합니다.
var toast = document.createElement("div");
// 2. 텍스트를 넣습니다.
toast.innerHTML = message;
// 3. 스타일을 자바스크립트로 직접 입힙니다. (CSS 의존성 제거)
// 주의: CSS 속성명은 카멜 표기법(camelCase)으로 작성해야 합니다.
// 예: background-color -> backgroundColor
toast.style.position = "fixed";
toast.style.left = "50%";
toast.style.bottom = "130px";
toast.style.width = "500px";
toast.style.marginLeft = "-166px"; // (width 300 + padding 좌우 32) / 2 의 근사값
toast.style.padding = "16px";
toast.style.backgroundColor = "#333333";
toast.style.color = "#ffffff";
toast.style.textAlign = "center";
toast.style.fontSize = "14px";
toast.style.zIndex = "9999";
// 테두리 둥글게 (구형 브라우저는 무시됨)
toast.style.borderRadius = "4px";
toast.style.MozBorderRadius = "4px";
toast.style.WebkitBorderRadius = "4px";
// 4. 초기 투명도 설정 (투명하게 시작)
toast.style.opacity = "0";
toast.style.filter = "alpha(opacity=0)"; // IE8 이하
// 5. body에 추가
document.body.appendChild(toast);
// 6. 애니메이션 (Fade-In)
var opacity = 0;
var fadeInInterval = setInterval(function() {
if (opacity < 1) {
opacity += 0.1;
// 부동소수점 오차 보정을 위해 약간의 처리가 필요할 수 있으나 단순 예제이므로 생략
if(opacity > 1) opacity = 1;
toast.style.opacity = opacity;
toast.style.filter = "alpha(opacity=" + (opacity * 100) + ")";
} else {
clearInterval(fadeInInterval);
// 7. 3초 유지 후 제거 시작
setTimeout(function() {
removeToast(toast);
}, 6000);
}
}, 30);
}
// 제거 함수 (Fade-Out)
function removeToast(element) {
var opacity = 1;
var fadeOutInterval = setInterval(function() {
if (opacity > 0) {
opacity -= 0.1;
element.style.opacity = opacity;
element.style.filter = "alpha(opacity=" + (opacity * 100) + ")";
} else {
clearInterval(fadeOutInterval);
// DOM에서 완전히 제거
if (element.parentNode) {
element.parentNode.removeChild(element);
}
}
}, 30);
}
//커스텀 DragPopup 컨트롤 정의
OpenLayers.Control.DragPopup = OpenLayers.Class(OpenLayers.Control, {
popup: null,
@ -694,18 +767,40 @@ function initApp(param){
HOLE_DRILLING = new OpenLayers.Layer.Vector("DRILLING");
}
*/
HOLE_DRILLING = new OpenLayers.Layer.Vector("DRILLING");
HOLE_DRILLING = new OpenLayers.Layer.Vector("DRILLING", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[0] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_0");
HOLE_BOUNDARY[1] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_1");
HOLE_BOUNDARY[2] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_2");
HOLE_BOUNDARY[3] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_3");
HOLE_BOUNDARY[4] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_4");
HOLE_BOUNDARY[5] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_5");
HOLE_BOUNDARY[6] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_6");
HOLE_BOUNDARY[7] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_7");
HOLE_BOUNDARY[8] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_8");
HOLE_BOUNDARY[9] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_9");
HOLE_BOUNDARY[0] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_0", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[1] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_1", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[2] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_2", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[3] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_3", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[4] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_4", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[5] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_5", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[6] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_6", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[7] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_7", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[8] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_8", {
renderers: ['Canvas', 'SVG']
});
HOLE_BOUNDARY[9] = new OpenLayers.Layer.Vector("HOLE_BOUNDARY_9", {
renderers: ['Canvas', 'SVG']
});
HOLE_LAYER_M = new OpenLayers.Layer.WMS(
"HOLES_M",
@ -889,6 +984,7 @@ function initApp(param){
});
MINE_LAYER = new OpenLayers.Layer.Vector("Mine Map", {
renderers: ['Canvas', 'SVG'],
strategies: [new OpenLayers.Strategy.BBOX({
ratio: 1.1,
resFactor: 1
@ -1206,7 +1302,73 @@ function initApp(param){
fillOpacity: 0
});
if (OpenLayers.Renderer.Canvas) {
OpenLayers.Renderer.Canvas.prototype.drawText = function(location, style) {
if (!location) {
return;
}
// 1. 좌표 변환 (결과는 [x, y] 배열임)
var pt = this.getLocalXY(location);
// 2. 유효성 검사 (배열 인덱스로 접근)
if (isNaN(pt[0]) || isNaN(pt[1])) {
return;
}
// 3. Offset 적용
if (style.labelXOffset || style.labelYOffset) {
pt[0] += parseFloat(style.labelXOffset || 0);
pt[1] += parseFloat(style.labelYOffset || 0);
}
this.setCanvasStyle("fill", style);
this.setCanvasStyle("stroke", style);
var label = String(style.label);
var context = this.canvas; // this.canvas는 Context 객체임
// 4. 스타일 적용
if (style.fontColor) {
context.fillStyle = style.fontColor;
}
if (style.fontOpacity) {
context.globalAlpha = style.fontOpacity;
}
var fontStyle = [
style.fontStyle ? style.fontStyle : "normal",
"normal",
style.fontWeight ? style.fontWeight : "normal",
style.fontSize ? style.fontSize : "10px",
style.fontFamily ? style.fontFamily : "sans-serif"
].join(" ");
context.font = fontStyle;
// 5. 정렬 설정
var align = style.labelAlign || "cm";
var alignMap = { 'l': 'left', 'r': 'right', 'c': 'center' };
var valignMap = { 't': 'top', 'b': 'bottom', 'm': 'middle' };
context.textAlign = alignMap[align.charAt(0)] || "center";
context.textBaseline = valignMap[align.charAt(1)] || "middle";
// 6. 그리기 (배열 인덱스 사용)
// 외곽선
if (style.labelOutlineWidth) {
context.lineWidth = style.labelOutlineWidth;
context.strokeStyle = style.labelOutlineColor;
context.strokeText(label, pt[0], pt[1]);
}
// 텍스트
context.fillText(label, pt[0], pt[1]);
};
}
TEXT_LABEL_LAYER = new OpenLayers.Layer.Vector("Text Labels", {
renderers: ['Canvas', 'SVG'],
styleMap: new OpenLayers.StyleMap({'default': textStyle})
});
BASE_MAP.addLayer(TEXT_LABEL_LAYER);
@ -1219,6 +1381,14 @@ function initApp(param){
PATH : new OpenLayers.Control.DynamicMeasure(
OpenLayers.Handler.Path, {
persist: true,
handlerOptions: {
layerOptions: {
renderers: ['Canvas', 'SVG']
}
},
layerSegmentsOptions: { renderers: ['Canvas', 'SVG'] },
layerLengthOptions: { renderers: ['Canvas', 'SVG'] },
layerHeadingOptions: { renderers: ['Canvas', 'SVG'] },
styles : {
'Line' : {
strokeWidth: 3,
@ -1233,6 +1403,14 @@ function initApp(param){
AREA : new OpenLayers.Control.DynamicMeasure(
OpenLayers.Handler.Polygon, {
persist: true,
handlerOptions: {
layerOptions: {
renderers: ['Canvas', 'SVG']
}
},
layerSegmentsOptions: { renderers: ['Canvas', 'SVG'] },
layerLengthOptions: { renderers: ['Canvas', 'SVG'] },
layerHeadingOptions: { renderers: ['Canvas', 'SVG'] },
styles : {
'Polygon' : {
strokeWidth: 2,
@ -1250,6 +1428,14 @@ function initApp(param){
PATH : new OpenLayers.Control.DynamicMeasure(
OpenLayers.Handler.Path, {
persist: true,
handlerOptions: {
layerOptions: {
renderers: ['Canvas', 'SVG']
}
},
layerSegmentsOptions: { renderers: ['Canvas', 'SVG'] },
layerLengthOptions: { renderers: ['Canvas', 'SVG'] },
layerHeadingOptions: { renderers: ['Canvas', 'SVG'] },
styles : {
'Line' : {
strokeWidth: 3,
@ -1268,6 +1454,14 @@ function initApp(param){
PATH : new OpenLayers.Control.DynamicMeasure(
OpenLayers.Handler.Path, {
persist: true,
handlerOptions: {
layerOptions: {
renderers: ['Canvas', 'SVG']
}
},
layerSegmentsOptions: { renderers: ['Canvas', 'SVG'] },
layerLengthOptions: { renderers: ['Canvas', 'SVG'] },
layerHeadingOptions: { renderers: ['Canvas', 'SVG'] },
styles : {
'Line' : {
strokeWidth: 3,
@ -1325,10 +1519,94 @@ function initApp(param){
BASE_MAP.addLayer(HOLE_BOUNDARY[8]);
BASE_MAP.addLayer(HOLE_BOUNDARY[9]);
if (OpenLayers.Renderer.Canvas) {
// 이미지 캐시 저장소 초기화
OpenLayers.Renderer.Canvas.prototype.imageCache = {};
OpenLayers.Renderer.Canvas.prototype.drawExternalGraphic = function(geometry, style, featureId) {
var url = style.externalGraphic;
var t = this;
// 1. 캐시된 이미지가 있는지 확인
var img = this.imageCache[url];
// 2. 그리기 함수 정의
var draw = function(imageObj) {
// feature가 삭제되었거나, 렌더러가 초기화되었으면 중단
if(!t.features[featureId]) return;
var pt = t.getLocalXY(geometry);
var p0 = pt[0];
var p1 = pt[1];
if(!isNaN(p0) && !isNaN(p1)) {
var width = style.graphicWidth || style.graphicHeight;
var height = style.graphicHeight || style.graphicWidth;
width = width ? width : style.pointRadius * 2;
height = height ? height : style.pointRadius * 2;
var xOffset = (style.graphicXOffset != undefined) ? style.graphicXOffset : -(0.5 * width);
var yOffset = (style.graphicYOffset != undefined) ? style.graphicYOffset : -(0.5 * height);
var x = (p0 + xOffset) | 0;
var y = (p1 + yOffset) | 0;
// 투명도 적용
var opacity = style.graphicOpacity || style.fillOpacity;
if (opacity !== undefined) {
t.canvas.globalAlpha = opacity;
} else {
t.canvas.globalAlpha = 1;
}
// 이미지 그리기
t.canvas.drawImage(imageObj, x, y, width, height);
// Hit Detection (클릭 감지용)
if (t.hitDetection) {
t.setHitContextStyle("fill", featureId);
t.hitContext.fillRect(x, y, width, height);
}
// 스타일 복구
t.canvas.globalAlpha = 1;
}
};
// 3. 이미지 로딩 및 캐싱 처리
if (!img) {
// 처음 로딩하는 이미지
img = new Image();
img.src = url;
img.onload = function() {
t.imageCache[url] = img; // 로딩 완료 후 캐시에 저장
draw(img); // 그리기
// 비동기 로딩이므로 완료 후 화면 갱신 요청
t.map.layerContainerDiv.style.display = "none";
t.map.layerContainerDiv.style.display = "";
};
} else {
// 이미 캐시된 이미지 -> 즉시 그리기 (깜빡임 해결)
if (img.complete) {
draw(img);
} else {
// 로딩 중이면 onload에 위임
img.onload = function() {
draw(img);
};
}
}
};
}
// 객체 선택
HOLE_SELECT = new OpenLayers.Layer.Vector("SELECT");
HOLE_SELECT.styleMap = new OpenLayers.StyleMap(getStyleSELECT());
BASE_MAP.addLayer(HOLE_SELECT);
HOLE_SELECT = new OpenLayers.Layer.Vector("SELECT", {
renderers: ['Canvas', 'SVG'], // 캡처 및 깜빡임 방지용
styleMap: new OpenLayers.StyleMap(getStyleSELECT())
});
BASE_MAP.addLayer(HOLE_SELECT);
// 레이어를 최상단으로 올리기 (다른 레이어에 가려지지 않도록)
//BASE_MAP.setLayerIndex(HOLE_SELECT, 2000);
@ -1360,12 +1638,16 @@ function initApp(param){
BASE_MAP.addControl(CTL_SELECT_SLOPE);
HOLE_SELECT2 = new OpenLayers.Layer.Vector("SELECT");
HOLE_SELECT2 = new OpenLayers.Layer.Vector("SELECT", {
renderers: ['Canvas', 'SVG']
});
HOLE_SELECT2.styleMap = new OpenLayers.StyleMap(getStyleSELECT());
BASE_MAP.addLayer(HOLE_SELECT2);
// 영역 선택
HOLE_AREA = new OpenLayers.Layer.Vector("AREA");
HOLE_AREA = new OpenLayers.Layer.Vector("AREA", {
renderers: ['Canvas', 'SVG']
});
HOLE_AREA.styleMap = new OpenLayers.StyleMap(getStyleAREA());
HOLE_AREA.events.register("beforefeatureadded", HOLE_AREA, HOLE_AREA.removeAllFeatures);
BASE_MAP.addLayer(HOLE_AREA);
@ -1525,7 +1807,10 @@ function initApp(param){
BASE_MAP.addControl(CTL_SELECT_JIBAN);
// 그리기 도구
HOLE_DRAW = new OpenLayers.Layer.Vector("DRAW");
HOLE_DRAW = new OpenLayers.Layer.Vector("DRAW", {
renderers: ['Canvas', 'SVG']
});
HOLE_DRAW.styleMap = getStyleDRAW();
BASE_MAP.addLayer(HOLE_DRAW);
@ -1727,7 +2012,9 @@ function initApp(param){
// 툴팁 표시
HOLE_TOOLTIP = new OpenLayers.Layer.Vector("SELECT");
HOLE_TOOLTIP = new OpenLayers.Layer.Vector("SELECT", {
renderers: ['Canvas', 'SVG']
});
HOLE_TOOLTIP.styleMap = new OpenLayers.StyleMap(new OpenLayers.Style({
fillColor: "#ee9900",
fillOpacity: 0,
@ -2815,7 +3102,7 @@ function addHoleNames(feature) {
labelAlign: "cb", // 라벨 정렬 (cm = center-middle)
labelOutlineColor: "#52770a", // 테두리 색상
labelOutlineWidth: 3, // 테두리 두께
labelYOffset: 25, // 포인트로부터 10px 위로 더 밀어냅니다.
labelYOffset: -25, // 음수이면 위로 올라간다.
// pointSymbolizer를 'none'으로 설정하여 점 아이콘은 숨깁니다.
pointRadius: 0,
fillOpacity: 0
@ -3317,7 +3604,7 @@ function move(){
// ----------------------------
// 함수 : 현재화면 저장
// ----------------------------
function saveToImage(){
function saveToImage_old_삭제요망_20251126(){
// 필요라이브러리 : html2canvas.min.js / html2canvas.svg.min.js / download.min.js / jquery.min.js
var realHeight = $("#map").height();
@ -3338,6 +3625,62 @@ function saveToImage(){
$("#map").css("height", "100%");
}
//----------------------------
//함수 : 현재화면 저장 (개선됨)
//----------------------------
function saveToImage() {
// 1. 로딩 이미지 추가 (사용자 정의 위치)
if( LoadingShow ) {
LoadingShow();
showToast("웹 특성상 오래 걸립니다. 필요 시 윈도우키+shift+s 키로 직접 캡쳐해주세요.");
}
// 2. 브라우저가 로딩 이미지를 그릴 시간을 주기 위해 setTimeout 사용
setTimeout(function() {
var mapDiv = $("#map");
var realHeight = mapDiv.height();
mapDiv.css("height", realHeight);
// 3. 캡처 시작
html2canvas(mapDiv[0], {
useCORS: true, // WMS 레이어 캡처 필수 옵션
allowTaint: false,
logging: false, // 로그 끔 (필요시 true)
proxy: "/map/proxy.do",
onrendered: function(canvas) {
try {
var imageData = canvas.toDataURL("image/png");
// 4. 날짜 포맷 생성 (yyyymmdd_HHMMSS)
var now = new Date();
var year = now.getFullYear();
var month = ('0' + (now.getMonth() + 1)).slice(-2);
var day = ('0' + now.getDate()).slice(-2);
var hours = ('0' + now.getHours()).slice(-2);
var minutes = ('0' + now.getMinutes()).slice(-2);
var seconds = ('0' + now.getSeconds()).slice(-2);
var timestamp = year + month + day + "_" + hours + minutes + seconds;
var fileName = "geoinfo_map_" + timestamp + ".png";
// 5. 다운로드 실행
download(imageData, fileName, "image/png");
} catch (e) {
console.error("이미지 저장 오류:", e);
alert("이미지 저장에 실패했습니다.");
} finally {
// 6. 뒷정리 (높이 원복 및 로딩바 제거)
mapDiv.css("height", "100%");
if( Loading ) {
Loading();
}
}
}
});
}, 500); // 0.5초 딜레이 (로딩바 렌더링 보장)
}
// ----------------------------
// 함수 : 거리 면적 측정 관리
@ -3470,6 +3813,7 @@ function onOverviewMap(){
// Sync Event -----------------------
var boxLayer = new OpenLayers.Layer.Vector("BOX", {
renderers: ['Canvas', 'SVG'],
styleMap: new OpenLayers.StyleMap({
"line" : new OpenLayers.Style({
fillColor: "#ffcc66",
@ -4230,6 +4574,7 @@ function locationMap(loList) {
// The overlay layer for our marker, with a simple diamond as symbol
var overlay = new OpenLayers.Layer.Vector('Overlay', {
renderers: ['Canvas', 'SVG'],
styleMap: new OpenLayers.StyleMap({
externalGraphic: '/images/map/preview/dot2.gif',
graphicWidth: 20, graphicHeight: 24, graphicYOffset: -24,
@ -4364,6 +4709,7 @@ function subsidenceLonLat(lon, lat, subsidenceInfo){
function addSubsidenceMarker(subsidenceLocation,subsidenceInfo){
var subsidence = new OpenLayers.Layer.Vector('Subsidence', {
renderers: ['Canvas', 'SVG'],
eventListeners : subsidenceListeners,
attributes : subsidenceInfo,
styleMap: new OpenLayers.StyleMap({
@ -4581,6 +4927,7 @@ function jihaanjeonLonLat(lon, lat, jihaanjeonInfo){
function addJihaanjeonMarker(jihaanjeonLocation,jihaanjeonInfo){
var jihaanjeon = new OpenLayers.Layer.Vector('Jihaanjeon', {
renderers: ['Canvas', 'SVG'],
eventListeners : jihaanjeonListeners,
attributes : jihaanjeonInfo,
styleMap: new OpenLayers.StyleMap({
@ -4817,6 +5164,7 @@ function jibanLonLat(lon, lat, jibanInfo){
function addJibanMarker(jibanLocation,jibanInfo){
var jiban = new OpenLayers.Layer.Vector('JibanModel', {
renderers: ['Canvas', 'SVG'],
eventListeners : jibanListeners,
attributes : jibanInfo,
styleMap: new OpenLayers.StyleMap({