| 
					
				 | 
			
			
				@@ -39,9 +39,36 @@ const stateMap = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 stateMap.set(0, '#FF0000'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 stateMap.set(1, '#00FF00'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 stateMap.set(2, '#FFFF00'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-stateMap.set(3, '#808080'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+stateMap.set(3, '#E5DEDE'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 stateMap.set(4, '#CC6600'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-stateMap.set(5, '#9933FF'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+stateMap.set(5, '#F006D7'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const strokeMap = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(1, 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(2, 40); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(3, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(4, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(5, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(6, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(7, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(8, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(9, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(10, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strokeMap.set(11, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const arrowMap = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(1, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(2, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(3, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(4, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(5, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(6, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(7, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(8, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(9, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(10, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+arrowMap.set(11, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var _isClick = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let _evpData = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -153,7 +180,8 @@ function init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function drawEvp(serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const bottom =   $('#iframeBottomList').contents().find('#evpBottomInfo'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bottom.empty(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (serviceId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            const $iframe = $('#iframeTreeList'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            const iframe = $iframe.contents(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,55 +258,8 @@ function drawHistory(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function createSig(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return new EmergencySig(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function setEmergencyCurr(car, sigMap, road, arrive, dataMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const sigArr   = dataMap.get('sig'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const eventObj = dataMap.get('event') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const eventCd  = eventObj.event_cd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (eventCd === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const {cur_lat, cur_lng} = eventObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        car.moveMarker(getKakaoPosition(cur_lat, cur_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else if (eventCd === 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        car.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sigArr.forEach((obj)=>{obj.hide()}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        arrive.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        road.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (sigArr && sigArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (let sig of sigArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const sigMarker = sigMap.get(sig.service_id + '_' + sig.seq_no); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (sigMarker) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!sigMarker.a_ring && !sigMarker.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sigMarker.createRing(sig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const {a_head_lat, a_head_lng, a_mid_lat, a_mid_lng, a_end_lat, a_end_lng, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        b_head_lat, b_head_lng, b_mid_lat, b_mid_lng, b_end_lat, b_end_lng} = sig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        const aPosition = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(a_head_lat, a_head_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(a_mid_lat, a_mid_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(a_end_lat, a_end_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        const bPosition = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(b_head_lat, b_head_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(b_mid_lat, b_mid_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            getKakaoPosition(b_end_lat, b_end_lng), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // console.log(aPosition, bPosition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sigMarker.a_ring.setPath(aPosition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sigMarker.b_ring.setPath(bPosition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sigMarker.setState(sig.state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // return new EmergencySig(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return new EmergencyCircle(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function drawEmergencyRoad(data) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -288,30 +269,9 @@ function drawEmergencyRoad(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (evpObj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 evpObj.car.moveMarker(getKakaoPosition(data.event_list[0].cur_lat, data.event_list[0].cur_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 data.phase_list.forEach((obj)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const {a_head_lat, a_head_lng, a_mid_lat, a_mid_lng, a_end_lat, a_end_lng, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    b_head_lat, b_head_lng, b_mid_lat, b_mid_lng, b_end_lat, b_end_lng, state} = obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const sig = evpObj.sig.get(obj.service_id + '_' + obj.seq_no); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (sig) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sig.setState(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (sig.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const a_head = getKakaoPosition(a_head_lat, a_head_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const a_mid = getKakaoPosition(a_mid_lat, a_mid_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const a_end = getKakaoPosition(a_end_lat, a_end_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            sig.a_ring.setPath([a_head, a_mid, a_end]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (sig.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const b_head = getKakaoPosition(b_head_lat, b_head_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const b_mid = getKakaoPosition(b_mid_lat, b_mid_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const b_end = getKakaoPosition(b_end_lat, b_end_lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            sig.b_ring.setPath([b_head, b_mid, b_end]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (sig.a_ring === null && sig.b_ring === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            sig.createRing(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        evpObj.sig.set(obj.service_id + '_' + obj.seq_no, new EmergencySig(obj)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        sig.createRing(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -340,6 +300,7 @@ function drawEmergencyRoad(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function clearEmgMarker() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (_EmergencyMap.size > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         _EmergencyMap.forEach((obj)=>{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -809,7 +770,6 @@ function getDrawRoad() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 마우스로 클릭한 위치입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var clickPosition = mouseEvent.latLng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                console.log(clickPosition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 지도 클릭이벤트가 발생했는데 선을 그리고있는 상태가 아니면 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!drawingFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //거리재기초기화 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1529,7 +1489,7 @@ class EmergencyObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     constructor({ arr_lat, arr_lng, arr_tm, clct_dt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     cur_lat, cur_lng, ev_no, ocr_no, ocr_type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     phase_list, route_list, service_dist, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    service_id, service_nm, status_cd, veh_len, event_list }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    service_id, service_nm, status_cd, veh_len, event_list, node_list }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.arr_lat = arr_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.arr_lng = arr_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.arr_tm = arr_tm; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1551,19 +1511,28 @@ class EmergencyObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.car = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.arrive = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.event_list = event_list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.node_list = node_list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.road = new EmergencyRoadObj(this.route_list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.setBound(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.road = new EmergencyRoadObj(this.route_list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.node_list && this.node_list.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.node_list.forEach((obj)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.sig.set(obj.service_id + '_' + obj.seq_no , new EmergencyCircle(obj)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.phase_list && this.phase_list.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.phase_list.forEach((obj)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const sig = new EmergencySig(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.sig.set(obj.service_id + '_' + obj.seq_no, sig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const circle = this.sig.get(obj.service_id + '_' + obj.seq_no); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    circle.createRing(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.car = new EmergencyMarker(getKakaoPosition(this.event_list[0].cur_lat, this.event_list[0].cur_lng), '/images/car.svg'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.car = new EmergencyMarker(getKakaoPosition(this.event_list[0].cur_lat, this.event_list[0].cur_lng), '/images/car.gif'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.arrive = new EmergencyMarker(getKakaoPosition(this.arr_lat, this.arr_lng), '/images/evp_arr.svg'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1586,11 +1555,28 @@ class EmergencyObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.arrive) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.arrive.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tree = $('#iframeTreeList').contents().find('#evp-table tr.on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (tree.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const bottom = $('#iframeBottomList').contents().find('#evpBottomInfo'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bottom.empty(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setBound() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const bounds = new kakao.maps.LatLngBounds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bounds.extend(getKakaoPosition(this.cur_lat, this.cur_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.cur_lng >= 125.06666667 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.cur_lng <= 131.87222222 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.cur_lat >= 33.10000000  && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.cur_lat <= 38.45000000) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bounds.extend(getKakaoPosition(this.cur_lat, this.cur_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.event_list[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const {cur_lat, cur_lng} = this.event_list[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bounds.extend(getKakaoPosition(cur_lat, cur_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         bounds.extend(getKakaoPosition(this.arr_lat, this.arr_lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         map.setBounds(bounds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1628,7 +1614,7 @@ class Ring{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 선이 그려지고 있을 때 마우스 움직임에 따라 선이 그려질 위치를 표시할 선을 생성합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.polyLine = new kakao.maps.Polyline({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeWeight: 5, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                strokeWeight: arrowMap.get(_Level), // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 path: [headPosition, midPosition, endPosition], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeColor: stateColor, // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeOpacity: 1, // 선의 불투명도입니다 0에서 1 사이값이며 0에 가까울수록 투명합니다 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1662,6 +1648,10 @@ class Ring{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setLineWidth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.setOptions({strokeWeight :  arrowMap.get(_Level)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setState(color) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.polyLine) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.polyLine.setOptions({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1671,79 +1661,89 @@ class Ring{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const sigMap = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EmergencySig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    constructor({clct_dt, service_id, node_id, node_nm, lat, lng, rem_dist, state, plan_class, a_ring_phase, b_ring_phase, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hold_phase, a_flow_no, a_head_angle, a_end_angle, a_head_lat, a_head_lng, a_mid_lat, a_mid_lng, a_end_lat, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    a_end_lng, b_flow_no, b_head_angle, b_end_angle, b_head_lat, b_head_lng, b_mid_lat, b_mid_lng, b_end_lat, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    b_end_lng, seq_no}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.seq_no = seq_no; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.clct_dt = clct_dt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class EmergencyCircle{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    constructor({service_id, seq_no, node_id, node_nm, lat, lng}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.service_id = service_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.seq_no = seq_no; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.node_id = node_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.node_nm = node_nm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.lat = lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.lng = lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.rem_dist = rem_dist; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.state = state; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.plan_class = plan_class; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_ring_phase = a_ring_phase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_ring_phase = b_ring_phase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.hold_phase = hold_phase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.circle = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.a_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.b_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.circle = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_flow_no = a_flow_no; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_flow_no = b_flow_no; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_head_angle = a_head_angle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_head_angle = b_head_angle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_end_angle = a_end_angle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_end_angle = b_end_angle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_head_lat = a_head_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_head_lng = a_head_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_head_lat = b_head_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_head_lng = b_head_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_mid_lat = a_mid_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_mid_lng = a_mid_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_mid_lat = b_mid_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_mid_lng = b_mid_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_end_lat = a_end_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.a_end_lng = a_end_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_end_lat = b_end_lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.b_end_lng = b_end_lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let stateColor = '#FF0000'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!isNaN(Number(this.state))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            stateColor = stateMap.get(Number(this.state)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let stateColor = '#00FF00'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const position = getKakaoPosition(this.lat, this.lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const nodeNm = this.node_nm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.circle = new kakao.maps.Circle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            center : position,  // 원의 중심좌표 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            radius: 60, // 미터 단위의 원의 반지름입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            strokeWeight: arrowMap.get(_Level), // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            strokeColor: stateColor, // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            strokeOpacity: 1, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            strokeStyle: 'solid', // 선의 스타일 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fillColor: stateColor, // 채우기 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fillOpacity: 0.3, // 채우기 불투명도 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            zIndex: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            name : nodeNm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!sigMap.get(this.service_id + '_' + this.seq_no)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle = new kakao.maps.Circle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                center : position,  // 원의 중심좌표 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                radius: 60, // 미터 단위의 원의 반지름입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeWeight: 5, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor: stateColor, // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeOpacity: 1, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeStyle: 'solid', // 선의 스타일 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor: stateColor, // 채우기 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillOpacity: 0.3, // 채우기 불투명도 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                zIndex: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                name : '신호현시', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sigMap.set(this.lat + '_' + this.lng, this.circle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    show() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.circle.setMap(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.createRing(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.a_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.b_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hide() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.circle.setMap(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.deleteRing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setState(state){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const stateColor = this.getStateColor(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.circle.setOptions({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                strokeColor: stateColor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fillColor : stateColor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getStateColor(state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let stateColor = '#FF0000'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!isNaN(Number(state))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stateColor = stateMap.get(Number(state)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return stateColor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createRing(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.a_ring.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.a_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.b_ring.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.b_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const stateArr = [1,2,4,5]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (stateArr.includes(data.state)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.a_ring = new Ring({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1782,108 +1782,30 @@ class EmergencySig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.a_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.b_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.setState(data.state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getStateColor(state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let stateColor = '#FF0000'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!isNaN(Number(state))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            stateColor = stateMap.get(Number(state)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return stateColor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    setState(state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const stateColor = this.getStateColor(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setLineWidth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle.setOptions({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor: stateColor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor : stateColor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.circle.setOptions({strokeWeight :  arrowMap.get(_Level)}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.a_ring.setState(stateColor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.a_ring.setLineWidth() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.b_ring.setState(stateColor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.b_ring.setLineWidth() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    show() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle.setMap(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.a_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.b_ring.show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    hide() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle.setMap(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deleteRing() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.a_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.a_ring.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.a_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.b_ring) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.b_ring.hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (sigMap && sigMap.size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sigMap.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    setCenter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        map.setCenter(getKakaoPosition(this.lng, this.lat)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class EmergencyCircle{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    constructor({service_id, seq_no, node_id, node_nm, lat, lng}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.service_id = service_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.seq_no = seq_no; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.node_id = node_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.node_nm = node_nm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.lat = lat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.lng = lng; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.circle = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let stateColor = '#FF0000'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const position = getKakaoPosition(this.lat, this.lng); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.circle = new kakao.maps.Circle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            center : position,  // 원의 중심좌표 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            radius: 60, // 미터 단위의 원의 반지름입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            strokeWeight: 5, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            strokeColor: stateColor, // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            strokeOpacity: 1, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            strokeStyle: 'solid', // 선의 스타일 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fillColor: stateColor, // 채우기 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fillOpacity: 0.3, // 채우기 불투명도 입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            zIndex: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            name : '신호현시', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    show() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle.setMap(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    hide() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.circle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.circle.setMap(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.b_ring = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1904,9 +1826,10 @@ class EmergencyRoadObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.kakaoPathArr.push(getKakaoPosition(obj.lat, obj.lng)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let strokeWidth = strokeMap.get(_Level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.backPolyLine = new kakao.maps.Polyline({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 path: this.kakaoPathArr, // 선을 구성하는 좌표 배열입니다 클릭한 위치를 넣어줍니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeWeight: 10, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                strokeWeight: strokeWidth, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeColor: '#ffffff', // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeOpacity: 1, // 선의 불투명도입니다 0에서 1 사이값이며 0에 가까울수록 투명합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeStyle: 'solid', // 선의 스타일입니다 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1915,7 +1838,7 @@ class EmergencyRoadObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 선이 그려지고 있을 때 마우스 움직임에 따라 선이 그려질 위치를 표시할 선을 생성합니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.polyLine = new kakao.maps.Polyline({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeWeight: 8, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                strokeWeight: strokeWidth - 2, // 선의 두께입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 path: this.kakaoPathArr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeColor: '#3386ff', // 선의 색깔입니다 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 strokeOpacity: 1, // 선의 불투명도입니다 0에서 1 사이값이며 0에 가까울수록 투명합니다 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1927,6 +1850,11 @@ class EmergencyRoadObj{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    setLineWidth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.backPolyLine.setOptions({strokeWeight: strokeMap.get(_Level)}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.polyLine.setOptions({strokeWeight: strokeMap.get(_Level) - 2}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     show() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (this.backPolyLine) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.backPolyLine.setMap(map); 
			 |