Tryag File Manager
Home
||
Turbo Force
||
B-F Config_Cpanel
Current Path :
/
home
/
ltms.eemo.co.kr
/
public_html
/
super
/
Or
Select Your Path :
Upload File :
New :
File
Dir
/home/ltms.eemo.co.kr/public_html/super/control_center.php
<? include_once("inc_header.php"); $on_menu="myfarm"; // 관제 센터 모드 선택 ( 기본값 1 설정 ) $centerMode = empty($_REQUEST[center_mode]) ? 1 : $_REQUEST[center_mode]; // 현재 모드에 따른 상태값 switch ($centerMode) { case '2': // 농가 모드 $centerModeTitle = "농가모드"; break; case '3': // GPS 모드 $centerModeTitle = "GPS모드"; break; case '9': # code... break; default: $centerModeTitle = "통합모드"; break; } ?> <!DOCTYPE html> <html> <head> <meta http-equiv= "Content - Type" content = "text/html; charset=UTF-8" > <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?=$_TITLE?></title> <? // videos?> <link href="//vjs.zencdn.net/7.3.0/video-js.min.css" rel="stylesheet"> <script src="//vjs.zencdn.net/7.3.0/video.min.js"></script> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="font-awesome/css/font-awesome.css" rel="stylesheet"> <link href="css/plugins/iCheck/custom.css" rel="stylesheet"> <link href="css/messagebox.css" rel="stylesheet"> <link href="css/animate.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <link href="css/plugins/datapicker/datepicker3.css" rel="stylesheet"> <link href="css/wickedpicker.css" rel="stylesheet"> </head> <? // 기본 스타일 세팅?> <style> #Tmap_Control_ZoomBar_3 { display : none; } .invisible-scrollbar::-webkit-scrollbar { display: none; } /* 로딩바 스타일 */ #Progress_Loading { position: absolute; left: 50%; top: 50%; background: rgba(255,255,255,0.2); } /* 검색창 css */ fieldset { margin-left: 50px; position: relative; display: inline-block; padding: 0 0 0 0; background: #fff; border: none; border-radius: 5px;} #search-input, #search-btn { position: relative; width: 200px; height: 30px; padding: 0 10px; display: inline-block; } #search-input { color: #000000; border: 0 none; } #search-input:focus { outline: 0 none; } #search-btn { z-index: 1; width: 50px; border: 0 none; background: #fff; cursor: pointer; border-radius: 0 5px 5px 0; -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .modal-backdrop{ display:none; } </style> <body class="fixed-sidebar no-skin-config full-height-layout pace-done mini-navbar"> <div id="wrapper"> <? include_once("inc_sidemenu.php"); ?> <? // 사이드 메뉴?> <div id="page-wrapper" class="gray-bg"> <? include_once("inc_top.php"); include_once("navigation.php"); ?> <div class="wrapper wrapper-content"> <div class="row animated fadeInDown"> <? // 맵?> <div id='viewMap' class="col-lg-12"> <? // 농가정보 viewer?> <div id="viewFarmInfo" style="float:left; width:60%;"> </div> <? // 맵 객체들 ?> <div class="map_box" style="width:100%"> <? // 지도 탑 메뉴?> <div class="col-lg-12 position-absolute map_box" style="z-index:1;"> <div class="row"> <div class="col-lg-12 px-0"> <? // 방역 설정 모달?> <div id="modalSetAreaConfirm" class="modal fade" tabindex="99999" role="dialog" aria-labelledby="CenterModalLabel"> <div class="modal-dialog modal-lg map-control-left-modal"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title"><i class="fa fa-warning text-danger"></i> 방역지역 설정</h3> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> </div> <div class="modal-body"> <div class="text-right"> <button class="btn btn-dark" onclick="prevention_execDaumPostcode()">주소 검색</button> <div id="wrap" style="display:none;border:1px solid;width:100%;height:300px;margin:5px 0;position:relative"> <img src="//t1.daumcdn.net/postcode/resource/images/close.png" id="btnFoldWrap" style="cursor:pointer;position:absolute;right:0px;top:-1px;z-index:1" onclick="foldDaumPostcode()" alt="접기 버튼"> </div> </div> <input type="hidden" id="prevention_postcode" placeholder="우편번호"> <input type="hidden" id="prevention_detailAddress" placeholder="상세주소"> <input type="hidden" id="sample3_extraAddress" placeholder="참고항목"> <input type="hidden" id="prevention_lon"> <input type="hidden" id="prevention_lat"> <p style="font-size:17px; font-weight: bolder;">「<span id="prevention_address" class="address text-primary text-underline"></span>」를 <select name="prevention_type" id="prevention_type"> <? $list_prevention_type_sql = mysql_query("SELECT * FROM ai_list WHERE company_no = $_REQUEST[ltms_company_no]"); while ($list_prevention_rs = mysql_fetch_object($list_prevention_type_sql) ) { ?> <option value="<?=$list_prevention_rs->no?>"><?=$list_prevention_rs->ai_name?></option> <? } ?> </select> 방역지역으로 설정 하시겠습니까? </p><br> <p class="text-danger text-underline">지도에 표시된 지역이 방역지역으로 설정될 지역이 맞는지 다시 한번 확인 해 주세요. <br>방역지역이 설정되면 관계자 및 차량 기사에게 메세지가 발송 됩니다.</p><br> <p></p> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-calendar"></i></span> <input type="text" class="form-control" name="prevention_date" id="prevention_date" value="<?=date("Y-m-d")?>" aautocomplete="off"> <input type="text" name="timepicker" class="timepicker pl-2"/> <span class="mt-2 h6">를 기점으로 방역지역을 설정하시겠습니까?</span><p></p> </div> <div class="modal-footer"> <a class="btn btn-danger text-white" data-dismiss="modal" onclick="addPriventionData()">방역지역으로 설정</a> <a class="btn btn-default" data-dismiss="modal">취소</a> </div> </div> </div> </div> </div> <? // 끝 방역 설정 모달?> <? // 검색바 ?> <div> <?if($centerMode < 9) { // 모드선택은 큰화면에서만 가능하다?> <button id="center-mode-card-bnt" class="btn btn-info" title="모드관리"><i class="fa fa-th-large text-white"></i></button> <?}else{?> <button id="view-detail-farm" onclick=changeMode(); class="btn btn-secondary" title="상세보기 모드"><i class="fa fa fa-columns text-white"></i></button> <?}?> <!-- <button type="button" class="btn btn-warning" onclick="popup();" target="_blank">팝업</button> --> <button id="prevention-card-bnt" class="btn btn-danger" title="방역관리"><i class="fa fa-medkit text-white"></i></button> <button class="btn btn-secondary" title="현재모드"><?=$centerModeTitle?></button> <fieldset class="m-0"> <input id="search-input" type="search" /> <button id="search-btn" type="submit"><i class="fa fa-search"></i> </button> </fieldset> </div> <div id="search-input-box" class="d-none w-25 invisible-scrollbar" style="height:500px; overflow:scroll;"> <div class="card text-white bg-success"> <div class="card-body"> <h4 id="search-input-title" class="card-title">d</h4> <p id="search-input-text" class="card-text">d</p> </div> </div> </div> </div> </div> <div class="row"> <div class="col-lg-4 px-0"> <div class="center-card-group prevention-card card text-dark bg-light d-none" style="width:600px;"> <div class="card-body"> <div class="mb-2" style="display: flow-root;"> <h4 class="card-title float-left"><i class="fa fa-warning text-danger"></i> 방역 > 현황</h4> <a class="badge badge-pill badge-danger float-right text-white" data-toggle="modal" data-target="#modalSetAreaConfirm">등록</a> <img src="img/icon/close1.png" style="cursor:pointer;position:absolute;right:0px;top:-1px;z-index:1" onclick="closePrevention()" alt="접기 버튼"> </div> <div id="prevention-box" class="d-inline"> <? // 데이터 ajax로 전송 getPreventionData() ?> </div> </div> </div> <div class="center-card-group center-mode-card card text-dark bg-light d-none" style="width:417px;"> <div class="card-body"> <div class="mb-2" style="display: flow-root;"> <h4 class="card-title float-left"><i class="fa fa-th-large text-info"></i> 모드 > 변경</h4> <img src="img/icon/close1.png" style="cursor:pointer;position:absolute;right:0px;top:-1px;z-index:1" onclick="closeCenterMode()" alt="접기 버튼"> </div> <label class="my-0">관제모드</label> <hr style="width: 86%; float: right;"/> <div class="my-2"> <a href="<?=$_SERVER[PHP_SELF]?>?center_mode=1" ><button class="btn <?=$_REQUEST[center_mode]==1 ? "btn-info" : "btn-outline-info " ?> mr-1" style="width:20%; line-height: 1.5;">전체모드</button></a> <a href="<?=$_SERVER[PHP_SELF]?>?center_mode=2" ><button class="btn <?=$_REQUEST[center_mode]==2 ? "btn-info" : "btn-outline-info " ?> mr-1" style="width:20%; line-height: 1.5;">농가모드</button></a> <a href="<?=$_SERVER[PHP_SELF]?>?center_mode=3" ><button class="btn <?=$_REQUEST[center_mode]==3 ? "btn-info" : "btn-outline-info " ?> mr-1" style="width:20%; line-height: 1.5;">GPS모드</button></a> <a href="<?=$_SERVER[PHP_SELF]?>?center_mode=4" ><button class="btn <?=$_REQUEST[center_mode]==4 ? "btn-info" : "btn-outline-info " ?> mr-1" style="width:20%; line-height: 1.5;">방역모드</button></a> </div > <label class="my-0">로테이션</label> <hr style="width: 86%; float: right;"/> <div class="my-2"> <button class="btn btn-outline-secondary dropdown-toggle mr-1" style="width:20%;" type="button" id="rotationTime" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">15초</button> <div class="dropdown-menu" id="rotationDropdown" aria-labelledby="rotationTime"> <a class="dropdown-item" href="javascirpt:void(0);" data-menu="15000">15초</a> <a class="dropdown-item" href="javascirpt:void(0);" data-menu="30000">30초</a> <a class="dropdown-item" href="javascirpt:void(0);" data-menu="60000">60초</a> </div> <a href="javascript:rotationPopup();" ><button id="rotationBtnA" class="btn btn-outline-info mr-1" style="width:20%; line-height: 1.5;">시작</button></a> <a href="javascript:retationRandom();" ><button id="rotationBtnB" class="btn btn-outline-info mr-1" style="width:20%; line-height: 1.5;">랜덤<span class='rotationRandomMode text-danger'> off</span></button></a> <a href="javascript:rotationPopupStop();" ><button id="rotationBtnC" class="btn btn-outline-info mr-1" style="width:20%; line-height: 1.5;">정지</button></a> </div> <hr/> </div> </div> </div> <div class="col-lg-8"> </div> </div> </div> <? // 맵로딩?> <div id="map_div"></div> <? // 점 표시 범례 ?> <div class="position-absolute bg-secondary" style="right:16px; top:0; z-index:9998; opacity: 0.6;" > <div> <div class="float-left" style="background: red; width:10px; height:10px; margin-top:5px;"></div><div class="float-left text-white" ><small> 사육중</small></div> </div> <div> <div class="float-left" style="background: gray; width:10px; height:10px; margin-top:5px;"></div><div class="float-left text-white" ><small> 대기</small></div> </div> </div> </div> </div> </div> </div> <?include_once("inc_footer.php");?> </div> </div> <div id = "Progress_Loading" sytle="z-index:9999;"><!-- 로딩바 --> <img src="/super/img/Progress_Loading.gif"/> </div> <!-- 스크립트 --> <? // Mainly scripts?> <script src="js/jquery-3.1.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.js"></script> <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script> <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script> <? // Peity?> <script src="js/plugins/peity/jquery.peity.min.js"></script> <? // Custom and plugin javascript?> <script src="js/inspinia.js"></script> <script src="js/plugins/pace/pace.min.js"></script> <? // iCheck?> <script src="js/plugins/iCheck/icheck.min.js"></script> <? // Peity?> <script src="js/demo/peity-demo.js"></script> <script src="css/messagebox.js"></script> <? // Tmap?> <!-- <script src="https://api2.sktelecom.com/tmap/js?version=1&format=javascript&appKey=0bb9345a-7688-4afb-a194-06162c43c434"></script> --> <script src="https://apis.openapi.sk.com/tmap/jsv2?version=1&format=javascript&appkey=c1f293bc-4750-457d-bee8-dbfb69b8b55f"></script> <? // Daum address Api?> <script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script> <? // Daum address Map?> <!-- <script src="//dapi.kakao.com/v2/maps/sdk.js?appkey=213dc4218afb9626ff4adceadefaa5d8&libraries=services"></script> --> <!-- Data picker --> <script src="js/wickedpicker.min.js"></script> <script src="js/plugins/datapicker/bootstrap-datepicker.js"></script> <!-- chart --> <script src="https://www.amcharts.com/lib/4/core.js"></script> <script src="https://www.amcharts.com/lib/4/charts.js"></script> <script src="https://www.amcharts.com/lib/4/themes/animated.js"></script> <script src="https://www.amcharts.com/lib/4/themes/dark.js"></script> <script src="https://www.amcharts.com/lib/4/themes/dataviz.js"></script> <!-- Resources --> <script src="js/plugins/rickshaw/vendor/d3.v3.js"></script> <script src="js/plugins/rickshaw/rickshaw.min.js"></script> <!-- script 끝 --> <!-- 끝 스크립트 --> <? // 시작 농가 리스트 가져오기 $objCompany = mysql_fetch_object(mysql_query("SELECT * FROM contractor_company WHERE 1 AND `no` = '{$_REQUEST['ucompany_no']}' LIMIT 1 ")); ?> <script> <? // HTML 로딩 후 로딩이 필요한 작업 ?> $(document).ready(function () { $('#Progress_Loading').hide(); //첫 시작시 로딩바를 숨겨준다. <? // date picker 생성?> $('#prevention_date').datepicker({ keyboardNavigation: false, forceParse: false, autoclose: true, format: 'yyyy-mm-dd', }); <? // time picker 옵션 설정 부분 ?> var options = { now: "00:00", twentyFour: true, //Display 24 hour format, defaults to false upArrow: 'wickedpicker__controls__control-up', //The up arrow class selector to use, for custom CSS downArrow: 'wickedpicker__controls__control-down', //The down arrow class selector to use, for custom CSS close: 'wickedpicker__close', //The close class selector to use, for custom CSS title: '시간 설정', } <? // time picker 생성?> $('.timepicker').wickedpicker(options); initTmap(map); <? // 로딩후 맵 실행 ?> }).ajaxStart(function(){ $('#Progress_Loading').show();}).ajaxStop(function(){ $('#Progress_Loading').hide();}); <? // 방역 버튼 설정 ?> $('#prevention-card-bnt').click(function (e) { e.preventDefault(); $('.center-card-group').hide(); if($('.prevention-card').hasClass('d-none')) { $('.prevention-card').removeClass('d-none'); <? // 첫 클릭시 방역메뉴 보이기?> $('.prevention-card').hide(); $('.prevention-card').slideToggle(); getPreventionData(); }else{ $('.prevention-card').addClass('d-none'); <? // 첫 클릭시 방역메뉴 보이기?> $('.prevention-card').slideToggle(); <? // 이후 토글로 쇼하이드 ?> getPreventionData(); } }); <? // 방역 메뉴 닫기?> function closePrevention() { $('.prevention-card').hide(); } <? // 모드 버튼 설정 ?> $('#center-mode-card-bnt').click(function (e) { e.preventDefault(); $('.center-card-group').hide(); if($('.center-mode-card').hasClass('d-none')) { $('.center-mode-card').removeClass('d-none'); <? // 첫 클릭시 방역메뉴 보이기?> $('.center-mode-card').hide(); $('.center-mode-card').slideToggle(); getPreventionData(); }else{ $('.center-mode-card').addClass('d-none'); <? // 첫 클릭시 방역메뉴 보이기?> $('.center-mode-card').slideToggle(); <? // 이후 토글로 쇼하이드 ?> getPreventionData(); } }); <? // 모드 메뉴 닫기?> function closeCenterMode() { $('.center-mode-card').hide(); } <? // global Map 객체?> // var map = new Tmap.Map({ // div : 'map_div',<? // map을 표시해줄 div?> // width : "100%",<? // map의 width 설정?> // height : "86vh",<? // map의 height 설정?> // }); // map 생성 // Tmapv2.Map을 이용하여, 지도가 들어갈 div, 넓이, 높이를 설정합니다. var map = new Tmapv2.Map("map_div", { width: "100%", // map의 width 설정 height: "86vh", // map의 height 설정 zoomControl: false, scrollwheel: true }); var objMapSize = map.screenSize(); <? // 초기 맵 사이즈 가져오기?> var sizeMapWidth = objMapSize._width; <? // 초기 맵 width?> var sizeMapHeight = objMapSize._height; <? // 초기 맵 height?> var sizeMapMinWidth = 748; <? // 작은 모드 width?> var sizeMapMinHeight = 806; <? // 작은 모드 height?> var farmMode = 1 ; <? // 농가 왼쪽 메뉴 번호 저장?> var GPSMode = 1 ; <? // GPS 왼쪽 메뉴 번호 저장?> var videoBox ; <? // 맵에 필요한 모든 객체 생성?> function initTmap(map){ <? // 계열사 위치 정보?> var mainLon = <?=$objCompany->lng?>; var mainLat = <?=$objCompany->lat?>; if(fnGetParameterByName("lon")==="G") { var newLon = mainLon; var newLat = mainLat; }else { var newLon = fnGetParameterByName("lon"); var newLat = fnGetParameterByName("lat"); } <? // 화면 중앙 설정?> var lonLat = new Tmapv2.LatLng(newLat , newLon); map.setZoom(11); map.setCenter(lonLat);<? // 설정한 좌표를 "EPSG:3857"로 좌표변환한 좌표값으로 즁심점을 설정합니다.?> getMarker(map, mainLon, mainLat, 'r', 'h','<?=$objCompany->name?>'); <? // 방역 라인 표기 ?> $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'prevention_line'}, dataType: "json", async: false, success: function (response) { response.forEach(function (item, index, array) { var color = item.size_1_color; <? // 방역라인 함수 실행에 필요한 컬러?> var cnt_line = item.cnt_line; <? // 방역라인 함수 실행에 필요한 컬러?> var size = new Array(item.size_1,item.size_2,item.size_3,item.size_4,item.size_5); drowPreventionLine(item, item.prevention_address, cnt_line ,color, size); }); } }); <? // 모드에 따른 출력 범위 switch ($centerMode) { case '2': echo "MarkerListFarm();"; // 농장데이터를 가져와 그만큼 지도에 마커를 뿌려준다. break; case '3': echo "getCarList();"; // GPS 차랑 마크 표기 break; default: echo "MarkerListFarm();"; // 농장데이터를 가져와 그만큼 지도에 마커를 뿌려준다. echo "getCarList();"; // GPS 차랑 마크 표기 break; } ?> } <? // 농가 리스트?> function MarkerListFarm () { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'farm_list'}, dataType: "json", async: false, success: function (response) { response.forEach(function (item, index, array) { <? // 농가 계약 정보 ?> var markerLayer = new Array; <? // 마커 설정?> // markerLayer[index]= new Tmapv2.Marker(); // map.addLayer(markerLayer[index]); var lonlat = new Tmapv2.LatLng(item.lat, item.lon); <? // 농장위치?> var size = new Tmapv2.Size(40, 39); // var offset = new Tmapv2.Pixel(-(size.w / 2), -(size.h)); <? // 농장 타입에 따라 마커 변경?> switch (item.gps_type) { case 'CC': if(item.hls_url!=null && item.ltms_status==5){ var icon = '/super/img/mark/pin_g_m_c.png'; <? // 카메라, 사육중 ?> } else if(item.hls_url!=null){ var icon = '/super/img/mark/pin_g_m_c.png'; <? // 카메라?> } else if(item.ltms_status == 5){ var icon = '/super/img/mark/pin_g_m_c.png'; <? // 사육중?> }else{ var icon = '/super/img/mark/pin_g_m_c.png'; <? // 마크만 표시?> } break; case 'PSYUK': if(item.hls_url!=null && item.ltms_status==5){ var icon = '/super/img/mark/pin_b_m_p.png'; } else if(item.hls_url!=null){ var icon = '/super/img/mark/pin_b_m_p.png'; } else if(item.ltms_status == 5){ var icon = '/super/img/mark/pin_b_m_p.png'; }else{ var icon = '/super/img/mark/pin_b_m_p.png'; } break; case 'PSSANRAN': if(item.hls_url!=null && item.ltms_status==5){ var icon = '/super/img/mark/pin_b_m_p.png'; } else if(item.hls_url!=null){ var icon = '/super/img/mark/pin_b_m_p.png'; } else if(item.ltms_status == 5){ var icon = '/super/img/mark/pin_b_m_p.png'; }else{ var icon = '/super/img/mark/pin_b_m_p.png'; } break; case 'GPSYUK': if(item.hls_url!=null && item.ltms_status==5){ var icon = '/super/img/mark/pin_b_m_g.png'; } else if(item.hls_url!=null){ var icon = '/super/img/mark/pin_b_m_g.png'; } else if(item.ltms_status == 5){ var icon = '/super/img/mark/pin_b_m_g.png'; }else{ var icon = '/super/img/mark/pin_b_m_g.png'; } break; case 'GPSSANRAN': if(item.hls_url!=null && item.ltms_status==5){ var icon = '/super/img/mark/pin_b_m_g.png'; } else if(item.hls_url!=null){ var icon = '/super/img/mark/pin_b_m_g.png'; } else if(item.ltms_status == 5){ var icon = '/super/img/mark/pin_b_m_g.png'; }else{ var icon = '/super/img/mark/pin_b_m_g.png'; } break; default: break; } var marker = new Array(); if(item.ltms_status==5){ var label = "<span style='background-color: #720404;color:white;opacity:0.5;border-radius: 10%;padding: 0 2px;'>"+item.farm_name+"</span>"; <? // 라벨 스타일?> }else { var label = "<span style='background-color: #46414E;color:white;opacity:0.5;border-radius: 10%;padding: 0 2px;'>"+item.farm_name+"</span>"; <? // 라벨 스타일?> } marker[item.farm_no]= new Tmapv2.Marker({ position: lonlat, <? // 농장위치?> iconSize: size, icon: icon, title: item.farm_name, label: label, map: map }); marker[item.farm_no].create(); <? // 마커생성?> // markerLayer[index].addMarker(marker[index]); // var click = new Array(); <? // 문제 발생시 function 을 배열에 담아 사용?> <? // 마커를 클릭했을 때 발생하는 이벤트 함수입니다.?> marker[item.farm_no].addListener("click", function(evt) { onClickInfo(item); }); // marker[index].events.register("click", marker[index], onClick);<? // 마커 마우스 클릭 이벤트 등록?> // marker[index].events.register("mouseover", marker[index], onOverMarker);<? // 마커 마우스 오버 이벤트 등록?> // marker[index].events.register("mouseout", marker[index], onMarkerOut);<? // 마커 마우스 아웃 이벤트 등록?> <? // 마커에 마우스가 오버되었을 때 발생하는 이벤트 함수입니다. 활성화 되면 팝업창이 보여집니다.?> function onOverMarker (evt){ <? // this.popup.show(); // 팝업 보이기?> } <? // 마커에 마우스가 아웃되었을 때 발생하는 이벤트 함수입니다. 활성화 되면 팝업창이 숨겨집니다.?> function onMarkerOut(evt){ <? // this.popup.hide(); 팝업 숨기기?> <? // $(".tmPopup").hide();?> } }); } }); } <? // 클릭 이후 농장 데이터 출력?> function onClickInfo(item){ closeFarmInfo(); mapSize = map.screenSize(); <? // 맵사이즈 객체 생성?> $('#view-detail-farm').data('data-farm_no', item.farm_no) <? // farm_no 데이터 넣어두기 ?> if(!isEmpty(videoBox)){ videoBox.dispose(); } $(".tmPopup").parent().remove(); <? // 기존 팝업 전부 숨기기?> $(".gpsPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> $(".preventionPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> <? // 화면 중앙 설정?> var latLng = new Tmapv2.LatLng(item.lat,item.lon); map.setCenter(latLng); if(mapSize._width > 750){ map.setZoom(map.getZoom()); <? // 작은 모드일 때 에러 발생?> } var hls_url = ""; <? // 농가 카메라 주소?> var ipchu_start = ""; <? // 입추 일자?> var feeddate = ""; <? // 일령?> var ipchu_susu = ""; <? // 입추 수수?> var ltms_status = ""; <? // 농장 정보?> var ltms_status_info = ""; <? // 농가 상태 정보?> var farm_dong_cnt = "<a class='dropdown-item' href='javascript:dong_info("+item.farm_no+","+0+","+item.farm_no+");'>입구</a>"; <? // 농가 계사(동) 수 ?> var dote, pesa, sum_dote, sum_pesa = ""; <? // 도태, 폐사?> var chatFeed=""; $.ajax({ <? // 농가 계약 정보 및 현재 계사 총합 정보?> type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'farm_ipcamera', farm_no:item.farm_no}, dataType: "json", async: false, success: function (response) { response.forEach(element => { hls_url = element.hls_url; ipchu_start = isEmpty(element.ipchu_start)? "" : element.ipchu_start ; ipchu_susu = isEmpty(element.ipchu_susu)? "" : element.ipchu_susu ; feeddate = isEmpty(element.feeddate)? "" : element.feeddate ; ltms_status = isEmpty(element.ltms_status)? "" : element.ltms_status ; sum_dote = isEmpty(element.sum_dote)? "" : element.sum_dote ; <? // 총도태?> sum_pesa = isEmpty(element.sum_pesa)? "" : element.sum_pesa ; <? // 총폐사?> dote = isEmpty(element.dote)? "" : element.dote ; <? // 금일도태?> pesa = isEmpty(element.pesa)? "" : element.pesa ; <? // 금일폐사?> if(ltms_status == 5) { ltms_status_info = "<span class='badge badge-primary'>사육중</span>"; }else { ltms_status_info = "<span class='badge badge-danger'>출하완료</span>"; } <? // 동정보 셀렉트 박스 생성?> element.dong_info_no.forEach(dongElement => { farm_dong_cnt += "<a class='dropdown-item' href='javascript:dong_info("+item.farm_no+","+dongElement.no+","+item.farm_no+");'>"+dongElement.dong_info_no+"</a>"; }); }); } }); var farmBaseRange = farmBasedRange(item.lat, item.lon); <? // 농가 기준 거리안에 포함된 방역 정보 ?> var farmBasedRangeStr =""; if(!isEmpty(farmBaseRange)){ farmBasedRangeStr = "<img src=\"/super/img/mark/siren4.png\" width=20 height=20 class=\" img-fluid ${3|rounded-top,rounded-right,rounded-bottom,rounded-left,rounded-circle,|}\" style='padding-bottom:7px;' "; } <? // API 팝업생성?> var popup;<? // 팝업 변수 선언?> // popup.setMap(null); <? // 팝업 div 만들어주는 곳?> var contentInfo=""; if(ltms_status == 5) { <? // ========== 사육중일때 테이블 작성 =================?> contentInfo = "<table class='table d-table-row'>"+ "<tbody>"+ "<tr>"+ "<th scope='row'>입추일</th>"+ "<td class='ipchu_start'>"+ipchu_start+"</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>일령</th>"+ "<td class='feeddate'>"+feeddate+"</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>입추수수</th>"+ "<td class='ipchu_susu'>"+ipchu_susu.format()+"</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>누적도태/폐사</th>"+ "<td class='sum_dote'>"+sum_dote.format()+" / "+sum_pesa.format()+"</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>현재수수</th>"+ "<td class='now_susu'>"+(ipchu_susu-sum_dote-sum_pesa).format()+"</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>금일도태/폐사</th>"+ "<td class='today_dote'>"+dote.format()+" / "+pesa.format()+"</td>"+ "</tr>"+ "<tr class='border-bottom'>"+ "<th scope='row'>육성률</th>"+ "<td class='incubation_rate'>"+(((ipchu_susu-sum_pesa-sum_dote)/ipchu_susu)*100).toFixed(2)+"%</td>"+ "</tr>"+ "</tbody>"+ "</table>"; } <? // =============== 기본 팝업 틀 =====================================?> var content = ""+ "<div class='tmPopup'>"+ "<div class='float-left'>"+ "<div style='position: relative; border-bottom: 1px solid #dcdcdc; line-height: 18px; padding: 13px 35px 2px 0;'>"+ "<div style='font-size: 19px; line-height: 15px;'>"+ "<span style='display: inline-block; height: 25px; vertical-align: middle; margin-right: -9px;'>"+"<strong>"+item.farm_name+"</strong>"+farmBasedRangeStr+"</span>"+ "</div>"+ "</div>"+ "<div style='position: relative; padding-top: 5px; display:inline-block'>"+ "<div style='display:inline-block; margin-left:15px; vertical-align: top; height:32px;'>"+ "</div>"+ "<video id='video"+item.farm_no+"' class='video-js videos' muted data-setup='{}' autoplay preload='none' style='width:457px; height:256px; border-radius:2%;!important; background:black;'>"+ "<source src='"+hls_url+"' type='application/x-mpegURL'>"+ "</video>"+ "</div>"+ "<div id='chartFeed' style='position:fixed;'></div>"+ "</div>"+ "<div class='float-left' style='width:196px;'>"+ "<div style='position: relative; border-bottom: 1px solid #dcdcdc; line-height: 18px; padding: 0 0px 3px 0; text-align:right;'>"+ "<div style='font-size: 12px; line-height: 15px;'>"+ "<span style='font-size: 12px; margin-left:1px; margin-bottom:2px; display:block;'>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+1+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-home text-dark border border-light'></i></h4></button>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+2+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-video-camera text-dark border border-light'></i></h4></button>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+3+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-bar-chart-o text-dark border border-light'></i></h4></button>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+4+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-car text-dark border border-light'></i></h4></button>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+5+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-edit text-dark border border-light'></i></h4></button>"+ "<button onclick=\"showFarmInfo("+item.farm_no+",'"+item.gps_type+"',"+item.contract_no+","+6+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-medkit text-dark border border-light'></i></h4></button>"+ "<button onclick=\"closeFarmInfo()\"style=\"cursor:pointer; position: absolute; height: 28px; background: rgba(0, 0, 0, 0.8); color: white; border-color: black; font-size: 20px; border-radius: 10px;\">X</button>"+ "</span>"+ "</div>"+ "</div>"+ "<div style='position: relative; padding-top: 5px; padding-left:10px; display:inline-block'>"+ "<div style='display:inline-block; width:73px; height:40px';' class=''>"+ltms_status_info+"</div>"+ "<div style='display:inline-block; margin-left:40px; vertical-align: top;'>"+ "<div class='btn-group' role='group' aria-label=''>"+ "<div class='btn-group' role='group'>"+ "<button id='dropdownId' type='button' class='btn btn-white dropdown-toggle' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false' style='color:black;'>"+ "입구</button>"+ "<div class='dropdown-menu' aria-labelledby='dropdownId' style='overflow-y:scroll; height:150px;'>"+ farm_dong_cnt+ "</div>"+ "</div>"+ "</div>"+ "</div>"+ contentInfo "</div>"+ "</div>"+ "</div>"; <? // =============== 끝 기본 팝업 틀 =====================================?> if(mapSize._width < 750) var latLng = new Tmapv2.LatLng(item.lat, item.lon-0.25); <? // 팝업 좌표?> else var latLng = new Tmapv2.LatLng(item.lat, item.lon); <? // 팝업 좌표?> popup = new Tmapv2.InfoWindow({ position: latLng, content: content, <? // 팝업 표출text?> visible: false, type: 2, }); popup.setMap(map); popup.draw();<? // 팝업 보이기?> <? // 팝업 스타일 설정 / 모드일때 아닐때 설정 ?> if(mapSize._width < 750){ $(".tmPopup").parent().css({"background":"rgba(0, 0, 0, 0.8)","padding-left":"14px", "z-index": "9998", "width":"700px", "height":"386px", "color":"white", "border-radius":"2%"}); map.setZoom(11); <? // 줌 고정?> ZoomFalse(); <? // 줌기능 막기?> } else { $(".tmPopup").parent().css({"background":"rgba(0, 0, 0, 0.8)","z-index": "9998", "width":"700px", "height":"775px", "padding-left":"14px", "color":"white", "margin-left":"10px", "margin-top":"-350px", "border-radius":"2%"}); ZoomTrue(); <? // 줌기능 열기 ?> } $(".tmPopupContent").css({"width":"700px","height":"360px"}); <? // 팝업 최상단 배치 및 크기?> $(".tmPopupContent").addClass("invisible-scrollbar"); $("#chartFeed").css("postion", "fixed"); videoBox = videojs('video'+item.farm_no); <? // 비디오가 html 그린 후 비디오 객체 생성?> $(".vjs-modal-dialog-content").hide(); $(".vjs-error-display").hide(); if(mapSize._width > 750){ chartFeed(item.farm_no, 0, item.contract_no); <? // 차트 정보 ?> } } <? // 동정보를 가져오는 함수 ?> function dong_info(farm_no, dong_no, index) { $.ajax({ <? // 농가 계사(동) 마다 종합정보?> type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'farm_dong_info', farm_no:farm_no, dong_no:dong_no}, dataType: "json", async: false, success: function (response) { response.forEach(element => { if(dong_no==0){ $("#dropdownId").text("입구"); }else { $("#dropdownId").text(element.dong_name); } videoBox.src(element.hls_url); $(".ipchu_start").html(element.ipchu_start); $(".feeddate").html(element.feeddate); $(".ipchu_susu").html(element.ipchu_susu.format()); $(".sum_dote").html(element.sum_dote.format()+" / "+element.sum_pesa.format()); $(".now_susu").html((element.ipchu_susu - element.sum_dote - element.sum_dote).format()); $(".today_dote").html(element.dote.format()+" / "+element.pesa.format()); $(".incubation_rate").html((((element.ipchu_susu-element.sum_pesa-element.sum_dote)/element.ipchu_susu)*100).toFixed(2)+"%"); if(mapSize._width > 750) { $('#chartFeed').html(""); chartFeed(farm_no, dong_no); }else if(mapSize._width < 750 && dong_no != 0) { showFarmDongInfo(farm_no,dong_no,element.gps_type,element.contract_no,5); <? // 농가정보 표현?> } else { showFarmInfo(farm_no,element.gps_type,element.contract_no,5) } }); } }); } <? // 해당 농가 사육그래프 ?> function chartFeed(farm_no,dong_no, contract_no) { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'chartFeed', farm_no:farm_no, dong_no:dong_no, contract_no:contract_no}, dataType: "html", async: false, success: function (response) { $('#chartFeed').html(response); } }); } <? // 농장 위도 경도로 마커를 찍어 준다.?> function getMarker(map, lng, lat, iconColor, iconAlphabet, farm_name) { var markerLayer = new Array; <? // 마커 설정?> var size = new Tmapv2.Size(24, 38); var offset = new Tmapv2.Point(-(size.w / 2), -(size.h)); var latLng = new Tmapv2.LatLng(lat, lng); var icon = 'http://tmapapis.sktelecom.com/upload/tmap/marker/pin_'+iconColor+'_m_'+iconAlphabet+'.png'; var label = "<span style='background-color: #46414E;color:white;opacity:0.5;border-radius: 10%;padding: 0 2px;'>"+farm_name+"</span>"; <? // 라벨 스타일?> markerLayer= new Tmapv2.Marker({ position: latLng, <? // 농장위치?> iconSize: new Tmapv2.Size(24, 38), // offset: offset, icon: icon, title: farm_name, label: label, map: map }); markerLayer.create(); <? // 마커생성?> // var marker = new Array(); // marker = new Tmapv2.Marker({ // position: latLng, // icon: icon, // map: map // }); // markerLayer.create(marker); } <? // 비어있는 객체 확인 ?> var isEmpty = function(value){ if( value == "" || value == null || value == undefined || ( value != null && typeof value == "object" && !Object.keys(value).length ) ) { return true; }else{ return false; } }; <? // 다음 주소 API ?> // 우편번호 찾기 찾기 화면을 넣을 element var element_wrap = document.getElementById('wrap'); // iframe을 넣은 element를 안보이게 한다. function foldDaumPostcode() { element_wrap.style.display = 'none'; } <? // 다음주소와 tmap api 를 이용하여 AI 위치 표기 ?> function prevention_execDaumPostcode() { // 현재 scroll 위치를 저장해놓는다. var currentScroll = Math.max(document.body.scrollTop, document.documentElement.scrollTop); new daum.Postcode({ oncomplete: function(data) { // 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 각 주소의 노출 규칙에 따라 주소를 조합한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var addr = ''; // 주소 변수 var extraAddr = ''; // 참고항목 변수 //사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다. if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우 addr = data.roadAddress; } else { // 사용자가 지번 주소를 선택했을 경우(J) addr = data.jibunAddress; } // 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다. if(data.userSelectedType === 'R'){ // 법정동명이 있을 경우 추가한다. (법정리는 제외) // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다. if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){ extraAddr += data.bname; } // 건물명이 있고, 공동주택일 경우 추가한다. if(data.buildingName !== '' && data.apartment === 'Y'){ extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName); } // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다. if(extraAddr !== ''){ extraAddr = ' (' + extraAddr + ')'; } // 조합된 참고항목을 해당 필드에 넣는다. // document.getElementById("prevention_extraAddress").value = extraAddr; } else { // document.getElementById("prevention_extraAddress").value = ''; } // 우편번호와 주소 정보를 해당 필드에 넣는다. document.getElementById('prevention_postcode').value = data.zonecode; // document.getElementById("prevention_address").value = addr; $('#prevention_address').text(addr); // drowPreventionLine(addr, "#FF0000"); var coordinate = getCoordinates(addr); $('#prevention_lon').val(coordinate.lon); $('#prevention_lat').val(coordinate.lat); // 커서를 상세주소 필드로 이동한다. document.getElementById("prevention_detailAddress").focus(); // iframe을 넣은 element를 안보이게 한다. // (autoClose:false 기능을 이용한다면, 아래 코드를 제거해야 화면에서 사라지지 않는다.) element_wrap.style.display = 'none'; // 우편번호 찾기 화면이 보이기 이전으로 scroll 위치를 되돌린다. document.body.scrollTop = currentScroll; }, // 우편번호 찾기 화면 크기가 조정되었을때 실행할 코드를 작성하는 부분. iframe을 넣은 element의 높이값을 조정한다. onresize : function(size) { element_wrap.style.height = size.height+'px'; }, width : '100%', height : '100%' }).embed(element_wrap); // iframe을 넣은 element를 보이게 한다. element_wrap.style.display = 'block'; } <? // 왼쪽 상세 메뉴 농장?> function showFarmInfo(farm_no,pbreedtype,contract_no,mode){ $('#view-detail-farm').data('data-farm_no', farm_no); farmMode = mode; $.ajax({ type: "POST", url: "control_center_process.php", data: { mode:mode, company_no : '<?=$_REQUEST['ucompany_no']?>', type:'showFarmInfo', farm_no:farm_no, pbreedtype:pbreedtype, contract_no:contract_no }, dataType: "html", async: false, success: function (response) { $('.map_box').css({ 'width':'40%', 'float':'right', }); var tmpHtml = response; sizeMapMinWidth = $('.map_box').width(); <? // 변경된 맵 사이즈로 크기 조절 와이드 모니터 생각?> map.resize(sizeMapMinWidth, sizeMapMinHeight); closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var farmInfo = getObjectItem(farm_no); farmInfo.forEach(element => { onClickInfo(element); }); $('#viewFarmInfo').remove(); $('#viewMap').append("<div id='viewFarmInfo' style='float:left; width:60%;''></div>"); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html(tmpHtml); <? // 재로드 ?> } }); } <? // 왼쪽 상세 사육 동정보?> function showFarmDongInfo(farm_no,dong_no,pbreedtype,contract_no,mode, chasu=1){ $.ajax({ type: "POST", url: "control_center_process.php", data: { mode:mode, company_no : '<?=$_REQUEST['ucompany_no']?>', type:'showFarmDongInfo', farm_no:farm_no, dong_no:dong_no, pbreedtype:pbreedtype,chasu:chasu,contract_no:contract_no }, dataType: "html", async: false, success: function (response) { var tmpHtml = response; $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html(tmpHtml); <? // 재로드 ?> } }); } <? // 모드전환?> function changeMode(data = 0, name="") { var mapSize = map.screenSize(); if(mapSize._width < 750){ map.resize(sizeMapWidth, sizeMapHeight); $('.map_box').css({ 'width':'100%', 'float':'right', }); $('#viewFarmInfo').remove(); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html("<h1>상세보기모드</h1>"); <? // 재로드 ?> }else { map.resize(sizeMapMinWidth, sizeMapMinHeight); $('.map_box').css({ 'width':'40%', 'float':'right', }); $('#viewFarmInfo').remove(); $('#viewMap').append("<div id='viewFarmInfo' style='float:left; width:60%;''></div>"); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html("<h1>상세보기모드</h1>"); <? // 재로드 ?> } switch (name) { case "prevention": if(data != 0) { var prevention_no = data; }else { var prevention_no = $('#view-detail-farm').data('data-prevention_no'); } if(!isEmpty(prevention_no)){ closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> onClickPreventionInfo(getObjectPrevention(prevention_no)); $('#viewFarmInfo').html(""); $('#viewFarmInfo').remove(); } break; case "farm": if(data != 0) { var farm_no = data; }else { var farm_no = $('#view-detail-farm').data('data-farm_no'); } if(!isEmpty(farm_no)){ closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var farmInfo = getObjectItem(farm_no); farmInfo.forEach(element => { onClickInfo(element); }); $('#viewFarmInfo').html(""); $('#viewFarmInfo').remove(); } break; case "GPS": if(data != 0) { var car_sn = data; }else { var car_sn = $('#view-detail-farm').data('data-farm_no'); } if(!isEmpty(car_sn)){ closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var carInfo = getCarInfo(car_sn); carInfo.forEach(element => { getCarPopup(element); }); $('#viewFarmInfo').html(""); $('#viewFarmInfo').remove(); } break; default: break; } } <? // 농가검색어 ?> $('#search-input').keyup(function (e) { var inpSearch = $('#search-input').val(); if(!$('.center-mode-card').hasClass('d-none')){ $('.center-mode-card').addClass('d-none'); $('.center-mode-card').slideToggle(); } if(!$('.prevention-card').hasClass('d-none')){ $('.prevention-card').addClass('d-none'); $('.prevention-card').slideToggle(); } $('#search-input-box').removeClass('d-none'); <? // 모드에 따른 출력 범위 switch ($centerMode) { case '3': ?> var tmpHtml = ""; $.ajax({ type: "POST", url: "control_center_process_gps.php", data: { company_no : '<?=$_REQUEST['ucompany_no']?>', type:'searchCar', inpSearch:inpSearch}, dataType: "json", async: false, success: function (response) { response.forEach(element => { tmpHtml+=""+ "<div class='card text-dark bg-white' style='cursor:pointer; opacity:0.8;' onclick='whereCar("+element.lat+","+element.lon+",\""+element.car_sn+"\");'>"+ "<div class='card-body'>"+ "<h4 id='search-input-title' class='card-title'>"+element.car_num+"</h4>"+ "<p id='search-input-text' class='card-text'>"+element.driver_no+"</p>"+ "</div>"+ "</div>"; }); } }); $('#search-input-box').html(""); $('#search-input-box').append(tmpHtml); <? break; default: ?> var tmpHtml = ""; $.ajax({ type: "POST", url: "control_center_process.php", data: { company_no : '<?=$_REQUEST['ucompany_no']?>', type:'searchFarm', inpSearch:inpSearch}, dataType: "json", async: false, success: function (response) { response.forEach(element => { tmpHtml+=""+ "<div class='card text-dark bg-white' style='cursor:pointer; opacity:0.8;' onclick='whereFarm("+element.lat+","+element.lon+","+element.farm_no+");'>"+ "<div class='card-body'>"+ "<h4 id='search-input-title' class='card-title'>"+element.farm_name+"</h4>"+ "<p id='search-input-text' class='card-text'>"+element.addr+"</p>"+ "</div>"+ "</div>"; }); } }); $('#search-input-box').html(""); $('#search-input-box').append(tmpHtml); <? break; } ?> }); <? // 검색된 농가 중앙 이동?> function whereFarm(lat, lon, farm_no) { $(".tmPopup").parent().remove(); <? // 기존 팝업 전부 숨기기?> var mapSize = map.screenSize(); $('#search-input-box').addClass('d-none'); $('#search-input-box').addClass('d-none'); map.setZoom(11); map.setCenter(new Tmapv2.LatLng(lat, lon));<? // 설정한 좌표를 "EPSG:3857"로 좌표변환한 좌표값으로 즁심점을 설정합니다.?> // if(mapSize._width < 750){ // return; // } $('#search-input-box').html(""); var farmInfo = getObjectItem(farm_no); farmInfo.forEach(element => { onClickInfo(element); }); } <? // 모든 팝업 제거 ?> function closeFarmInfo() { $(".tmPopup").parent().remove(); <? // 기존 팝업 전부 숨기기?> $(".gpsPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> $(".preventionPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> $('#search-input-box').addClass('d-none');; <? // 검색어 창?> $('.center-card-group').hide(); <? // 팝업 메뉴 숨기기?> } <? // item 객체 받기?> function getObjectItem(farm_no) { var objFarmInfo ; $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'getFarmInfo', farm_no:farm_no}, dataType: "json", async: false, success: function (response) { objFarmInfo = response; } }); return objFarmInfo; } <? /* ========================================== Common ========================================== */?> // 천단위 , 표기 (숫자 타입에서 쓸 수 있도록 format() 함수 추가) Number.prototype.format = function(){ if(this==0) return 0; var reg = /(^[+-]?\d+)(\d{3})/; var n = (this + ''); while (reg.test(n)) n = n.replace(reg, '$1' + ',' + '$2'); return n; }; // 천단위 , 표기 (문자열 타입에서 쓸 수 있도록 format() 함수 추가) String.prototype.format = function(){ var num = parseFloat(this); if( isNaN(num) ) return "0"; return num.format(); }; <? // 파라미터 value 값 가져오기?> function fnGetParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); var result = results === null ? "G" : decodeURIComponent(results[1].replace(/\+/g, " ")); return result; } <? // ESC 키 사용시 팝업 닫기 ?> $(document).keyup(function(e) { if (e.keyCode == 27) { // escape key maps to keycode `27` closeFarmInfo(); } }); <? // 랜덤함수(정수)?> function makeRandom(min, max){ var RandVal = Math.floor(Math.random()*(max-min+1)) + min; return RandVal; } <? /* ========================================== GPS모드 ========================================== */?> <? // GPS 리스트 전부 위치 정보 마커표시?> function getCarList() { $.ajax({ type: "POST", url: "control_center_process_gps.php", data: {type:"getCarList"}, dataType: "json", async: false, success: function (response) { var marker = new Array(); response.forEach(carInfo => { var latLng = new Tmapv2.LatLng(carInfo.lat, carInfo.lon); var size = new Tmapv2.Size(24, 38); var icon = '/super/img/mark/mark_truck.png'; var label = "<span style='background-color: #46414E;color:white;opacity:0.6;border-radius: 10%;padding: 0 2px;'>"+carInfo.car_num+"</span>"; <? // 라벨 스타일?> // map.setCenter(latLng); marker[carInfo.car_sn] = new Tmapv2.Marker({ position: latLng, <? // 농장위치?> iconSize: size, icon: icon, map: map, title: "운전자명", label : label }); marker[carInfo.car_sn].create(); <? // 마커생성?> marker[carInfo.car_sn].addListener("click", function(evt) { getCarPopup(carInfo); }); }); } }); } <? // GPS 등록 차량 전부 시작위치 끝 위치 확인 ?> function getSElocation() { $.ajax({ type: "POST", url: "control_center_process_gps.php", data: {type:"getSElocation"}, dataType: "json", async: false, success: function (response) { response.forEach(SElocation => { // 시작 addMarker("llStart",SElocation.min_lon,SElocation.min_lat,1); // 도착 addMarker("llEnd",SElocation.max_lon,SElocation.max_lat,2); var polyline = new Tmapv2.Polyline({ path: [ new Tmapv2.LatLng(SElocation.min_lat,SElocation.min_lon), new Tmapv2.LatLng(SElocation.max_lat,SElocation.max_lon) ], strokeColor: "#ff5757", strokeWeight: 6, map: map }); }); } }); } function addMarker(status, lon, lat, tag) { //출도착경유구분 //이미지 파일 변경. var markerLayer; switch (status) { case "llStart": imgURL = 'http://tmapapis.sktelecom.com/upload/tmap/marker/pin_r_m_s.png'; break; case "llPass": imgURL = 'http://tmapapis.sktelecom.com/upload/tmap/marker/pin_b_m_p.png'; break; case "llEnd": imgURL = 'http://tmapapis.sktelecom.com/upload/tmap/marker/pin_r_m_e.png'; break; default: }; var marker = new Tmapv2.Marker({ position: new Tmapv2.LatLng(lat,lon), icon: imgURL, map: map }); return marker; } <? // 차량 팝업 ?> function getCarPopup(item) { closeFarmInfo(); var mapSize = map.screenSize(); <? // 맵사이즈 객체 생성?> <? // 화면 중앙 설정?> var latLng = new Tmapv2.LatLng(item.lat,item.lon); map.setCenter(latLng); if(mapSize._width > 750){ map.setZoom(map.getZoom()); <? // 작은 모드일 때 에러 발생?> } $(".tmPopup").parent().remove(); <? // 기존 팝업 전부 숨기기?> $(".gpsPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> $(".preventionPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> var content = ""+ "<div class='gpsPopup' "+ "<div>"+ "<div class='row m-0'>"+ "<div class='col-7' style='border-bottom: 1px solid #dcdcdc;'>"+ "<h3 class='m-0 mt-2'>"+item.car_num +" 운전자 성함 </h3>"+ // "<button class=\"badge badge-danger\" onclick=\"dayGPS('"+item.car_sn+"');\">운행경로 보기</button>"+ "</div>"+ "<div class='col-5' style='position: relative; border-bottom: 1px solid #dcdcdc; line-height: 18px; padding: 0 0px 3px 0; text-align:right;'>"+ "<div style='font-size: 12px; line-height: 15px;'>"+ "<span style='font-size: 12px; margin-left:1px; margin-bottom:2px; display:block;'>"+ "<button onclick=\"javascript:showCarInfo(\'"+item.car_sn+"\',"+1+")\" style=\"cursor:pointer;\"><h4><i class='fa fa-home text-dark border border-light'></i></h4></button>"+ "<button onclick=\"javascript:dayGPS(\'"+item.car_sn+"\')\" style=\"cursor:pointer;\"><h4><i class='fa fa-car text-dark border border-light'></i></h4></button>"+ "<button onclick=\"javascript:showCarInfo(\'"+item.car_sn+"\',"+6+")\" style=\"cursor:pointer;\"><h4><i class='fa fa-edit text-dark border border-light'></i></h4></button>"+ "<button onclick=\"closeFarmInfo()\"style=\"cursor:pointer; background: rgba(0, 0, 0, 0.8); color: white; border-color: black; font-size: 20px; border-radius: 10px;\">X</button>"+ "</span>"+ "</div>"+ "</div>"+ "</div>"+ "<div class='row m-0'>"+ "<div class='col-7 py-1'>"+ "</div>"+ "<div class='col-5 py-1'>"+ "[사료차량]"+ "</div>"+ "</div>"+ "<div class='row m-0'>"+ "<div class='py-1 col-7 float-left'>"+ "<img src=\"img/car_driver/driverInfo.png\" style='height:170px; border-radius: 2%;' width=\"290\" class=\"img-fluid ${3|rounded-top,rounded-right,rounded-bottom,rounded-left,rounded-circle,|}\" alt=\"\">"+ "</div>"+ "<div class='py-1 col-5 px-3 float-right' style='background:rgba(0,0,0,0.2);'>"+ "<table class='table d-table-row'>"+ "<tbody>"+ "<tr>"+ "<th scope='row'>운송상태</th>"+ "<td class=''>"+ "<span class=\"badge badge-sm badge-primary\">출발</span>"+ "</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>도착지</th>"+ "<td class=''>양계농가</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>지역</th>"+ "<td class=''>한국어디</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>도착예정시간</th>"+ "<td class=''>양계농가</td>"+ "</tr>"+ "<tr>"+ "<th scope='row'>도착예정시간</th>"+ "<td class=''>양계농가</td>"+ "</tr>"+ "</tbody>"+ "</table>"; "</div>"+ "</div>"+ "</div>"+ "</div>"; var latLng = new Tmapv2.LatLng(item.lat,item.lon); var popup = new Tmapv2.InfoWindow({ position: latLng, content: content, <? // 팝업 표출text?> visible: false, type: 2, }); popup.setMap(map); popup.draw();<? // 팝업 보이기?> if(mapSize._width < 750){ $(".gpsPopup").parent().css({"background":"rgba(0, 0, 0, 0.7)", "width":"500px", "height":"270px", "border-radius":"2%", "color":"white", "margin":"0 0 0 -280px", "padding":"10px"}); map.setZoom(11); <? // 줌 고정?> ZoomFalse(); <? // 줌기능 막기?> } else { $(".gpsPopup").parent().css({"background":"rgba(0, 0, 0, 0.7)", "width":"500px", "height":"270px", "border-radius":"2%", "color":"white", "margin":"-120px 30px 0 30px", "padding":"10px"}); ZoomTrue(); <? // 줌기능 열기 ?> } } <? // 차량 한대 하루 이동 조회?> function dayGPS(car_sn, clickDate='', sdateTime='', edateTime='') { $('#view-detail-farm').data('data-farm_no', car_sn); $.ajax({ type: "POST", url: "control_center_process_gps.php", data: { company_no : '<?=$_REQUEST['ucompany_no']?>', type:'dayGPS', car_sn:car_sn, searchDate:clickDate, sdateTime:sdateTime, edateTime:edateTime }, dataType: "html", async: false, success: function (response) { $('.map_box').css({ 'width':'40%', 'float':'right', }); var tmpHtml = response; sizeMapMinWidth = $('.map_box').width(); <? // 변경된 맵 사이즈로 크기 조절 와이드 모니터 생각?> map.resize(sizeMapMinWidth, sizeMapMinHeight); closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var carInfo = getCarInfo(car_sn); carInfo.forEach(element => { getCarPopup(element); }); $('#viewFarmInfo').remove(); $('#viewMap').append("<div id='viewFarmInfo' style='float:left; width:60%;''></div>"); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html(tmpHtml); <? // 재로드 ?> } }); } <? // 차량 한대에 대한 정보 조회?> function getCarInfo(car_sn) { var carInfo ; $.ajax({ type: "POST", url: "control_center_process_gps.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'getCarInfo', car_sn:car_sn}, dataType: "json", async: false, success: function (response) { carInfo = response; } }); return carInfo; } <? // 왼쪽 상세 메뉴 GPS ?> function showCarInfo(car_sn, mode){ GPSMode = mode; $('#view-detail-farm').data('data-car_sn', car_sn); $.ajax({ type: "POST", url: "control_center_process_gps.php", data: { mode:mode, company_no : '<?=$_REQUEST['ucompany_no']?>', type:'showCarInfo', car_sn: car_sn}, dataType: "html", async: false, success: function (response) { $('.map_box').css({ 'width':'40%', 'float':'right', }); var tmpHtml = response; sizeMapMinWidth = $('.map_box').width(); <? // 변경된 맵 사이즈로 크기 조절 와이드 모니터 생각?> map.resize(sizeMapMinWidth, sizeMapMinHeight); closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var carInfo = getCarInfo(car_sn); carInfo.forEach(element => { getCarPopup(element); }); $('#viewFarmInfo').remove(); $('#viewMap').append("<div id='viewFarmInfo' style='float:left; width:60%;''></div>"); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html(tmpHtml); <? // 재로드 ?> } }); } <? // 검색된 농가 중앙 이동?> function whereCar(lat, lon, car_sn) { closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> var mapSize = map.screenSize(); $('#search-input-box').addClass('d-none'); $('#search-input-box').addClass('d-none'); map.setZoom(11); map.setCenter(new Tmapv2.LatLng(lat, lon));<? // 설정한 좌표를 "EPSG:3857"로 좌표변환한 좌표값으로 즁심점을 설정합니다.?> $('#search-input-box').html(""); var carInfo = getCarInfo(car_sn); carInfo.forEach(element => { getCarPopup(element); }); } <? /* ========================================== 방역모드 ========================================== */?> <? // 한개 방역 정보 가져오기 ?> function getObjectPrevention(prevention_no) { var preventionInfo; $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'getPreventionInfo', prevention_no: prevention_no}, dataType: "json", async: false, success: function (response) { response.forEach(function (item, index, array) { preventionInfo = item; }); } }); return preventionInfo; } <? // 주소값을 받아 -> 방역 라인 표시?> function drowPreventionLine(item, addr, cnt_line, color, arrRadius) { // 2. API 사용요청 $.ajax({ method:"GET", url:"https://apis.openapi.sk.com/tmap/geo/fullAddrGeo?version=1&format=xml&callback=result", //FullTextGeocoding api 요청 url입니다. async:false, data:{ "coordType" : "WGS84GEO",//지구 위의 위치를 나타내는 좌표 타입입니다. "fullAddr" : addr, //주소 정보 입니다, 도로명 주소 표준 표기 방법을 지원합니다. "appKey" : "c1f293bc-4750-457d-bee8-dbfb69b8b55f",//실행을 위한 키 입니다. 발급받으신 AppKey(appKey)를 입력하세요. }, //데이터 로드가 성공적으로 완료되었을 때 발생하는 함수입니다. success:function(response){ prtcl = response; var prtclString = new XMLSerializer().serializeToString(prtcl);//xml to String xmlDoc = $.parseXML( prtclString ), $xml = $( xmlDoc ), $intRate = $xml.find("coordinate"); //검색 결과 정보가 없을 때 처리 if($intRate.length==0){ //예외처리를 위한 파싱 데이터 $intError = $xml.find("error"); // 주소가 올바르지 않을 경우 예외처리 if($intError.context.all[0].nodeName == "error"){ $("#result").text("요청 데이터가 올바르지 않습니다."); } } var lon, lat; if($intRate[0].getElementsByTagName("lon").length>0){//구주소 lon = $intRate[0].getElementsByTagName("lon")[0].childNodes[0].nodeValue; lat = $intRate[0].getElementsByTagName("lat")[0].childNodes[0].nodeValue; }else{//신주소 lon = $intRate[0].getElementsByTagName("newLon")[0].childNodes[0].nodeValue; lat = $intRate[0].getElementsByTagName("newLat")[0].childNodes[0].nodeValue; } <? // 마커 설정?> var size = new Tmapv2.Size(18, 18); var latLng = new Tmapv2.LatLng(lat, lon); var icon = 'img/mark/siren4.png'; markerLayer= new Tmapv2.Marker({ position: latLng, <? // 농장위치?> iconSize: size, icon: icon, title: addr, map: map }); markerLayer.create(); <? // 마커생성?> // 원 생성 var latLng = new Tmapv2.LatLng(lat, lon); for (let i = 0; i < cnt_line; i++) { var circle1 = new Tmapv2.Circle({ center : latLng, radius : arrRadius[i], strokeColor: "black", fillColor: color, strokeWeight: 0.5, map: map }); } <? // 방역 클릭 이벤트?> markerLayer.addListener("click", function(evt) { onClickPreventionInfo(item); }); } }); } <? // 방역 마크 클릭 이벤트 ?> function onClickPreventionInfo(item) { closeFarmInfo(); var mapSize = map.screenSize(); <? // 맵사이즈 객체 생성?> <? // 화면 중앙 설정?> var latLng = new Tmapv2.LatLng(item.lat,item.lng); map.setCenter(latLng); if(mapSize._width > 750){ map.setZoom(map.getZoom()); <? // 작은 모드일 때 에러 발생?> } $(".tmPopup").parent().remove(); <? // 기존 팝업 전부 숨기기?> $(".gpsPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> $(".preventionPopup").parent().remove(); <? // GPS 팝업 전부 숨기기?> var content = ""+ "<div class='preventionPopup'>"+ "<div style='border-bottom: 1px solid #dcdcdc;height:40px;margin-right:20px;'>"+ "<div class='float-left' style=' width:70%;'>"+ "<div style='font-size: 17px; line-height: 35px;'>"+ "<span style='margin-right: -9px;'>"+"<strong>"+item.prevention_address+"</span>"+ "</div>"+ "</div>"+ "<div class='float-right'>"+ "<div style='font-size: 12px; line-height: 15px;'>"+ "<span style='font-size: 12px; margin-left:1px; margin-bottom:2px; display:block;'>"+ "<button onclick=\"preventionInfo("+item.ep_no+", "+0+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-home text-dark border border-light'></i></h4></button>"+ "<button onclick=\"preventionInfo("+item.ep_no+", "+1+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-car text-dark border border-light'></i></h4></button>"+ "<button onclick=\"preventionInfo("+item.ep_no+", "+2+");\" style=\"cursor:pointer;\"><h4><i class='fa fa-edit text-dark border border-light'></i></h4></button>"+ "<button onclick=\"closeFarmInfo()\"style=\"cursor:pointer; position: absolute; height: 28px; background: rgba(0, 0, 0, 0.8); color: white; border-color: black; font-size: 20px; border-radius: 10px;\">X</button>"+ "</span>"+ "</div>"+ "</div>"+ "</div>"+ "<div id=chartPrevention>"+ "<div id=tablePrevention>"+ "</div>"+ "</div>"; var popup = new Tmapv2.InfoWindow({ position: latLng, content: content, <? // 팝업 표출text?> visible: false, type: 2, }); popup.setMap(map); popup.draw();<? // 팝업 보이기?> if(mapSize._width < 750){ $(".preventionPopup").parent().css({"background":"rgba(0, 0, 0, 0.7)", "width":"500px", "height":"270px", "border-radius":"2%", "color":"white", "margin":"0 0 0 -280px", "padding":"10px"}); tablePrevention(item.ep_no); map.setZoom(11); <? // 줌 고정?> ZoomFalse(); <? // 줌기능 막기?> } else { $(".preventionPopup").parent().css({"background":"rgba(0, 0, 0, 0.7)", "width":"800px", "height":"600px", "border-radius":"2%", "color":"white", "margin":"-300px 30px 0 30px", "padding":"10px"}); ZoomTrue(); <? // 줌기능 열기 ?> chartPrevention(item.ep_no); } } function preventionInfo(ep_no, mode, start_date="", end_date="", car_num="") { var today = new Date(); var yyyy = today.getFullYear(); var mm = today.getMonth()+1; var dd = today.getDate(); if(dd<10){ dd='0'+dd; } if(mm<10){ mm='0'+mm; } today = yyyy+'-'+mm+'-'+dd; if(end_date==""){ end_date = today; } var item = getObjectPrevention(ep_no); $('#view-detail-farm').data('prevention_no',item.no); $.ajax({ type: "POST", url: "control_center_process.php", data: { mode:mode, company_no : '<?=$_REQUEST['ucompany_no']?>', type:'showPreventionInfo', prevention_no: item.no, prevention_sdate:start_date, prevention_edate:end_date, prevention_car_num:car_num }, dataType: "html", async: false, success: function (response) { $('.map_box').css({ 'width':'40%', 'float':'right', }); var tmpHtml = response; sizeMapMinWidth = $('.map_box').width(); <? // 변경된 맵 사이즈로 크기 조절 와이드 모니터 생각?> map.resize(sizeMapMinWidth, sizeMapMinHeight); closeFarmInfo(); <? // 기존 팝업 전부 숨기기?> onClickPreventionInfo(item); $('#viewFarmInfo').remove(); $('#viewMap').append("<div id='viewFarmInfo' style='float:left; width:60%;''></div>"); $('#viewFarmInfo').empty(); <? // 삭제 후 ?> $('#viewFarmInfo').html(tmpHtml); <? // 재로드 ?> } }); } <? // 주소 좌표 변환?> function getCoordinates(addr) { // 1. 좌표 변수 var coordinate = { lon: 0, lat: 0 }; // 2. API 사용요청 $.ajax({ method:"GET", url:"https://apis.openapi.sk.com/tmap/geo/fullAddrGeo?version=1&format=xml&callback=result", //FullTextGeocoding api 요청 url입니다. async:false, data:{ "coordType" : "WGS84GEO",//지구 위의 위치를 나타내는 좌표 타입입니다. "fullAddr" : addr, //주소 정보 입니다, 도로명 주소 표준 표기 방법을 지원합니다. "appKey" : "c1f293bc-4750-457d-bee8-dbfb69b8b55f",//실행을 위한 키 입니다. 발급받으신 AppKey(appKey)를 입력하세요. }, //데이터 로드가 성공적으로 완료되었을 때 발생하는 함수입니다. success:function(response){ prtcl = response; var prtclString = new XMLSerializer().serializeToString(prtcl);//xml to String xmlDoc = $.parseXML( prtclString ), $xml = $( xmlDoc ), $intRate = $xml.find("coordinate"); //검색 결과 정보가 없을 때 처리 if($intRate.length==0){ //예외처리를 위한 파싱 데이터 $intError = $xml.find("error"); // 주소가 올바르지 않을 경우 예외처리 if($intError.context.all[0].nodeName == "error"){ $("#result").text("요청 데이터가 올바르지 않습니다."); } } if($intRate[0].getElementsByTagName("lon").length>0){//구주소 coordinate.lon = $intRate[0].getElementsByTagName("lon")[0].childNodes[0].nodeValue; coordinate.lat = $intRate[0].getElementsByTagName("lat")[0].childNodes[0].nodeValue; }else{//신주소 coordinate.lon = $intRate[0].getElementsByTagName("newLon")[0].childNodes[0].nodeValue; coordinate.lat = $intRate[0].getElementsByTagName("newLat")[0].childNodes[0].nodeValue; } } }); return coordinate; } <? // 방역 등록 ?> function addPriventionData() { var prevention_lat = $('#prevention_lat').val(); var prevention_lon = $('#prevention_lon').val(); var prevention_address = $('#prevention_address').text(); var prevention_type = $('#prevention_type').val(); var prevention_date = $('#prevention_date').val(); var timepicker = $('.timepicker').val(); var data = { <? // 데이터 함수?> prevention_lat : prevention_lat, prevention_lon : prevention_lon, prevention_address : prevention_address, prevention_no : prevention_type, prevention_date : prevention_date, prevention_time : timepicker, company_no : '<?=$_REQUEST['ucompany_no']?>', user_id : '<?=$_REQUEST['uid']?>', type:'addPriventionData' } $.ajax({ type: "POST", url: "control_center_process.php", data: data, dataType: "json", async: false, success: function (response) { getPreventionData(); eval(response['alert']); <? // text로 넘어온 html 실행 ?> eval(response['link']); <? // text로 넘어온 html 실행 ?> } }); } <? // 방역데이터 가져오기?> function getPreventionData() { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no: "<?=$_REQUEST['ltms_company_no']?>" , type:"prevention_list"}, dataType: "json", async: false, success: function (response) { var text = ""; $('#prevention-box').html(""); response.forEach(element => { var object = element; text +="<div style='display: flow-root; line-height:31px'>"+ "<div class='float-left mt-1'>"+ "<span class='prevention_type badge' style='background:"+element.size_1_color+";color:white;text-shadow: 1px 1px 0 black;'>"+element.prevention_type+"</span>"+ "<a href='javascript:goPrevention("+element.ep_no+");'><span class='prevention_address h7 ml-1'>"+element.prevention_address+"</span></a>"+ "</div>"+ "<div class='float-right'>"+ "<span class='prevention_time h7 ml-5'>[ "+element.prevention_time+" ] </span>"+ "<a class=\'btn btn-outline btn-warning\' onclick='deletePrevention("+element.ep_no+");'>방역 해제</a>"+ "</div>"+ "</div>"; }); $('#prevention-box').append(text); } }); } <? // 방역 정보 (한개)?> function goPrevention(ep_no) { var item = getObjectPrevention(ep_no); var latLng = new Tmapv2.LatLng(item.lat,item.lng); map.setCenter(latLng); onClickPreventionInfo(item); } <? // 방역 데이터 삭제?> function deletePrevention(prevention_no) { $.ajax({ type: "POST", url: "control_center_process.php", data: {type:"deletePrevention" , prevention_no:prevention_no}, dataType: "json", async: false, success: function (response) { getPreventionData(); eval(response['alert']); <? // text로 넘어온 html 실행 ?> eval(response['link']); <? // text로 넘어온 html 실행 ?> } }); } function farmBasedRange(lat, lon) { <? // 농가기준 방역 포함 검사?> var farmBasedResult; $.ajax({ type: "POST", url: "control_center_process.php", data: {type:'farmBasedRange', farm_lat:lat, farm_lon:lon}, dataType: "JSON", async: false, success: function (response) { farmBasedResult = response; } }); return farmBasedResult; } <? // 방역 정보 그래프 ?> function chartPrevention(ep_no) { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'chartPrevention', prevention_no: ep_no}, dataType: "html", async: false, success: function (response) { $('#chartPrevention').html(response); } }); } <? // 방역 정보 데이터 표 ?> function tablePrevention(ep_no) { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'tablePrevention', prevention_no: ep_no}, dataType: "html", async: false, success: function (response) { $('#tablePrevention').html(response); } }); } <? /* ========================================== Map AIP 함수 ========================================== */?> // 지도의 설정된 최대 영역으로 줌 아웃해주는 함수입니다. function zoomOut(){ //map의 최대 영역으로 줌 아웃 map.zoomToMaxExtent(); } // 지도의 확대축소 기능을 막을 수 있는 함수입니다. function ZoomFalse(){ map._data.options.scrollwheel = false; } // 지도의 확대축소 기능을 가능하게 하는 함수입니다. function ZoomTrue(){ map._data.options.scrollwheel = true; } <? /* ========================================== popup ========================================== */?> function popup() { var url = "test.php"; var name = "popup test"; var popupX = (document.body.offsetWidth / 2) - (200 / 2); <? // 만들 팝업창 좌우 크기의 2/1 만큼 보정값으로 빼주었음?> var popupY = (document.body.offsetHeight /2) - (300 / 2); <? // 만들 팝업창 상하 크기의 1/2 만큼 보정값으로 빼주었음 ?> var option = "width = 1024, height = 800, location = no"+ ",status=no, left="+ popupX + ", top="+ popupY; window.open(url, name, option); } <? // ========================================== 로테이션 모드 ========================================== ?> var timeId ; <? // 로테이션 ID?> var rotationValue = 15000; var currentIndex = 0; var lastIndex = 0; var arrayObject; var randomMode = false; <? // 로테이션 시작?> function rotationPopup() { $('#rotationBtnA').removeClass('btn-outline-info'); $('#rotationBtnA').addClass('btn-info'); clearInterval(timeId); closeFarmInfo(); retationInfo(); <?switch ($_REQUEST[center_mode]) { case '1': // 전체 모드 case '2': // 농가모드 ?> timeId = setInterval(() => { $.ajax({ type: "POST", url: "control_center_process.php", data: {company_no : '<?=$_REQUEST['ucompany_no']?>', type:'farm_list'}, dataType: "json", async: false, success: function (response) { response.forEach(function (item, index, array) { lastIndex = index; arrayObject = array; }); } }); var mapSize = map.screenSize(); if(mapSize._width < 750){ showFarmInfo(arrayObject[currentIndex].farm_no , arrayObject[currentIndex].gps_type , arrayObject[currentIndex].contract_no, farmMode); } onClickInfo(arrayObject[currentIndex]); currentIndex++; if(randomMode) { currentIndex = makeRandom(0, lastIndex); } if(lastIndex < currentIndex) { currentIndex=0; } }, rotationValue); <? break; case '3': // GPS모드 ?> timeId = setInterval(() => { $("#map_div").html(""); reloadMap(); $.ajax({ type: "POST", url: "control_center_process_gps.php", data: {type:"getCarList"}, dataType: "json", async: false, success: function (response) { response.forEach(function (item, index, array) { lastIndex = index; arrayObject = array; }); } }); var mapSize = map.screenSize(); if(mapSize._width < 750){ showCarInfo(arrayObject[currentIndex].car_sn, GPSMode); } getCarPopup(arrayObject[currentIndex]); currentIndex++; if(randomMode) { currentIndex = makeRandom(0, lastIndex); } if(lastIndex < currentIndex) { currentIndex=0; } }, rotationValue);; <? break; case '4': // 방역모드 # code... break; default: # code... break; }?> } <? // 로테이션 랜덤?> function retationRandom() { if($('#rotationBtnB').hasClass('btn-info')) { $('#rotationBtnB').addClass('btn-outline-info'); $('#rotationBtnB').removeClass('btn-info'); }else { $('#rotationBtnB').removeClass('btn-outline-info'); $('#rotationBtnB').addClass('btn-info'); } closeFarmInfo(); if(randomMode) { randomMode = false; $('.rotationRandomMode').text('off'); $('.rotationRandomMode').removeClass("text-info"); $('.rotationRandomMode').addClass("text-danger"); } else { randomMode = true; $('.rotationRandomMode').text('on'); $('.rotationRandomMode').removeClass("text-danger"); $('.rotationRandomMode').addClass("text-info"); } retationInfo(); } <? // 로테이션 종료?> function rotationPopupStop() { $('#rotationBtnA').removeClass('btn-info'); $('#rotationBtnA').addClass('btn-outline-info'); alert('로테이션 종료'); clearInterval(timeId); closeFarmInfo(); $('#search-input').attr("placeholder", ""); $('#search-input').removeAttr("disabled"); } $('#rotationDropdown a').click(function () { rotationValue = $(this).data("menu"); $('#rotationTime').text($(this).text()); }); <? // 검색 기능 => 알림판 사용 ?> function retationInfo() { var rotationInfo = ""; if(!randomMode) rotationInfo = "로테이션중.. 랜덤모드(off)"; else rotationInfo = "로테이션중.. 랜덤모드(on)"; $('#search-input').attr("placeholder", rotationInfo); $('#search-input').attr("disabled", "true"); } function reloadMap() { map = new Tmapv2.Map("map_div", { width: "100%", // map의 width 설정 height: "86vh", // map의 height 설정 zoomControl: false, scrollwheel: true }); objMapSize = map.screenSize(); <? // 초기 맵 사이즈 가져오기?> sizeMapWidth = objMapSize._width; <? // 초기 맵 width?> sizeMapHeight = objMapSize._height; <? // 초기 맵 height?> sizeMapMinWidth = 748; <? // 작은 모드 width?> sizeMapMinHeight = 806; <? // 작은 모드 height?> farmMode = 1 ; <? // 농가 왼쪽 메뉴 번호 저장?> GPSMode = 1 ; <? // GPS 왼쪽 메뉴 번호 저장?> videoBox ; initTmap(map); } </script> </body> </html>