var mapContainer; var map; //지도객체 var marker; var polygon; var customOverlay = null; var ps; var infowindow = null; var troubleInfoWindow = null; /** 거리재기 객체*/ var drawingFlag = false; // 선이 그려지고 있는 상태를 가지고 있을 변수입니다 var drawingAreaFlag = false; var clickLine // 마우스로 클릭한 좌표로 그려질 선 객체입니다 var areaOverlay; // 다각형의 면적정보를 표시할 커스텀오버레이 입니다 var textOverlay; // 다각형의 면적정보를 표시할 커스텀오버레이 입니다 var distanceOverlay; // 선의 거리정보를 표시할 커스텀오버레이 입니다 var dots = {}; // 선이 그려지고 있을때 클릭할 때마다 클릭 지점과 거리를 표시하는 커스텀 오버레이 배열입니다. var roadMarker = []; var searchMarker = []; //장소 var searchInfoWindow = [] //장소 이름 인포윈도우 var imsMarker = []; var troubleMarker = []; var linkLineArr = []; var _EmergencyMap = new Map(); var IMS_VIEW_LEVEL = 8; //돌발 7 var overlayOn = false; var roadviewMarker = null; var _ToggleSiginfo = false; const stateMap = new Map(); stateMap.set(0, '#FF0000'); stateMap.set(1, '#00FF00'); stateMap.set(2, '#FFFF00'); stateMap.set(3, '#808080'); stateMap.set(4, '#CC6600'); stateMap.set(5, '#9933FF'); var _isClick = null; let _evpData = []; $(document).ready(function () { init(); }); function init() { //정보관리창 닫을때 regionCd intNo 가저와서 해당 위치로 이동.. var masterLng = sessionStorage.getItem('masterLng'); var masterLat = sessionStorage.getItem('masterLat'); //var lat = 35.871595504565676; //var lng = 128.601612749012; var lat = '37.5630934'; var lng = '126.9752351'; if (masterLng != null && masterLat != null) { lat = masterLat; lng = masterLng; } mapContainer = document.getElementById('map') // 지도를 표시할 div var mapOption = { center: new kakao.maps.LatLng(lat, lng), level: _Level, maxLevel : 11, }; map = new kakao.maps.Map(mapContainer, mapOption); // 지도생성 // map.setMaxLevel(11); // 지도와 스카이뷰 지도타입 컨트롤을 생성 //var mapTypeControl = new kakao.maps.MapTypeControl(); // 지도에 컨트롤을 추가해야 지도위에 표시됩니다 // kakao.maps.ControlPosition은 컨트롤이 표시될 위치를 정의하는데 TOPRIGHT는 오른쪽 위를 의미합니다 //map.addControl(mapTypeControl, kakao.maps.ControlPosition.TOPRIGHT); // 지도 확대 축소 줌 컨트롤을 생성 var zoomControl = new kakao.maps.ZoomControl(); map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); // 신호현시 줌,이동 이벤트 분리 kakao.maps.event.addListener(map, 'zoom_changed', mapZoomBound); kakao.maps.event.addListener(map, 'dragend', mapMoveBound);//드래그 종료시 이벤트발생 kakao.maps.event.addListener(map, 'rightclick', mapRightClick);//드래그 종료시 이벤트발생 kakao.maps.event.addListener(map, 'click', mapClick);//드래그 종료시 이벤트발생 //kakao.maps.event.addListener(map, 'idle', mapIdle); /* // 맵클릭했을때 위도경도 찾기 kakao.maps.event.addListener(map, 'click', function(mouseEvent) { var nowlatLng = mouseEvent.latLng; console.log(nowlatLng); });*/ //getSignalInfo(); const worker = new Worker('/js/worker.js'); worker.postMessage({message:"worker START"}); worker.onmessage = (ev)=>{ const data = JSON.parse(ev.data); const iframe = $('#iframeTreeList').contents(); const table = iframe.find('.evp-table'); const img = iframe.find('#tab2 img'); const imgName = '/images/evp_icon'; let exp = '.png'; let str = '조회된 내용이 없습니다.'; _evpData = data; if (data && data.length > 0) { table.empty(); exp = '.gif'; str = ''; for (let obj of data) { let className = ''; if (_isClick && obj.service_id === _isClick) { className = 'on'; } str += `${obj.clct_dt}${obj.service_id}${obj.service_nm}`; } if (_isClick) { drawEvp(_isClick); } table.html(str); data.forEach((obj)=>{ iframe.find('.tr_' + obj.service_id).off('click'); iframe.find('.tr_' + obj.service_id).on('click',()=> drawEvp(obj.service_id)); }) } else { if (iframe.find('.empty-evp').length === 0) { table.html(str); } if (_EmergencyMap.size){ _EmergencyMap.forEach((obj)=>{ obj.clear(); }); _EmergencyMap.clear(); _isClick = null; } } if (img.attr('src') !== imgName + exp) { img.attr('src',imgName + exp); } } function drawEvp(serviceId) { if (serviceId) { const $iframe = $('#iframeTreeList'); const iframe = $iframe.contents(); const iframeContent = $iframe.get(0).contentWindow; const iframeMap = iframeContent._historyMap; if (iframeMap && iframeMap.size) { iframeMap.forEach((obj)=>{ if (obj.get('draw')) { obj.get('draw').clear(); obj.set('draw', null); } }); if (iframeContent.interval) { clearInterval(iframeContent.interval); iframeContent.interval = null; iframeContent.cnt = 0; } } if (!iframe.find('.tr_'+ serviceId + '.on').length) { iframe.find('tr.on').removeClass('on'); iframe.find('.tr_'+ serviceId).addClass('on'); } let idx = _evpData.findIndex((obj)=> obj.service_id === serviceId); drawEmergencyRoad(_evpData[idx]); } } } let coordMarker; function mapRightClick(e) { if (!$('.road_on')[0]) { if (coordMarker) { coordMarker.close(); } const textArea = $('