From a9debf1e9d8d8883e7bd78fc0be029ac2c2f408f Mon Sep 17 00:00:00 2001 From: junh_eee Date: Wed, 22 Jun 2022 12:00:10 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EA=B2=BD=EB=A1=9C=20test=20?= =?UTF-8?q?=ED=83=AD=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layouts/components/navbar/NavbarUser.js | 11 + src/components/mapDraw/MapControlDraw.js | 10 + src/components/mapDraw/geojson/airArea.json | 5629 +++++++++++++++++ src/components/mapDraw/google/DronMarker.js | 24 + src/components/mapDraw/google/GoogleMap.js | 64 + src/components/mapDraw/naver/NaverMap.js | 107 + .../mapDraw/naver/NaverMapControl.js | 31 + src/components/mapDraw/naver/draw/DrawPath.js | 129 + .../mapDraw/naver/draw/DrawTest0.js | 71 + .../mapDraw/naver/draw/DrawTest1.js | 157 + .../mapDraw/naver/draw/DrawTest2.js | 180 + .../mapDraw/naver/dron/DronHistory.js | 63 + .../mapDraw/naver/dron/DronMarker.js | 158 + .../mapDraw/naver/feature/FeatureAirZone.js | 150 + .../mapDraw/naver/search/NaverMapSearch.js | 25 + .../mapDraw/naver/sensor/SensorZone.js | 488 ++ src/components/mapDraw/nhn/NMap.js | 42 + src/components/mapDraw/nhn/NMapMarker.js | 62 + src/components/mapDraw/nhn/NMapPolyline.js | 47 + .../control/map/actions/controlMapActions.ts | 4 + .../control/map/reducers/controlMapReducer.ts | 10 +- src/router/routes/index.js | 7 + src/views/testDraw/alarm/ControlAlarmList.js | 66 + .../testDraw/alarm/ControlAlarmNotice.js | 45 + src/views/testDraw/index.js | 18 + src/views/testDraw/main/ControlMainDraw.js | 183 + src/views/testDraw/menu/ControlMenuLeft.js | 10 + .../testDraw/report/ControlReportDetail.js | 219 + .../testDraw/report/ControlReportList.js | 115 + src/views/testDraw/setting/ControlSetting.js | 244 + src/views/testDraw/weather/WeatherList.js | 233 + 31 files changed, 8601 insertions(+), 1 deletion(-) create mode 100644 src/components/mapDraw/MapControlDraw.js create mode 100644 src/components/mapDraw/geojson/airArea.json create mode 100644 src/components/mapDraw/google/DronMarker.js create mode 100644 src/components/mapDraw/google/GoogleMap.js create mode 100644 src/components/mapDraw/naver/NaverMap.js create mode 100644 src/components/mapDraw/naver/NaverMapControl.js create mode 100644 src/components/mapDraw/naver/draw/DrawPath.js create mode 100644 src/components/mapDraw/naver/draw/DrawTest0.js create mode 100644 src/components/mapDraw/naver/draw/DrawTest1.js create mode 100644 src/components/mapDraw/naver/draw/DrawTest2.js create mode 100644 src/components/mapDraw/naver/dron/DronHistory.js create mode 100644 src/components/mapDraw/naver/dron/DronMarker.js create mode 100644 src/components/mapDraw/naver/feature/FeatureAirZone.js create mode 100644 src/components/mapDraw/naver/search/NaverMapSearch.js create mode 100644 src/components/mapDraw/naver/sensor/SensorZone.js create mode 100644 src/components/mapDraw/nhn/NMap.js create mode 100644 src/components/mapDraw/nhn/NMapMarker.js create mode 100644 src/components/mapDraw/nhn/NMapPolyline.js create mode 100644 src/views/testDraw/alarm/ControlAlarmList.js create mode 100644 src/views/testDraw/alarm/ControlAlarmNotice.js create mode 100644 src/views/testDraw/index.js create mode 100644 src/views/testDraw/main/ControlMainDraw.js create mode 100644 src/views/testDraw/menu/ControlMenuLeft.js create mode 100644 src/views/testDraw/report/ControlReportDetail.js create mode 100644 src/views/testDraw/report/ControlReportList.js create mode 100644 src/views/testDraw/setting/ControlSetting.js create mode 100644 src/views/testDraw/weather/WeatherList.js diff --git a/src/@core/layouts/components/navbar/NavbarUser.js b/src/@core/layouts/components/navbar/NavbarUser.js index f667c51a..ec7881e0 100644 --- a/src/@core/layouts/components/navbar/NavbarUser.js +++ b/src/@core/layouts/components/navbar/NavbarUser.js @@ -92,6 +92,17 @@ const NavbarUser = props => { 드론 관제 시스템 + + window.open('/testDraw', '_blank')} + // active={active === '2'} + // onClick={() => { + // toggle('2') + // }} + > + 버퍼 테스트 + + {/*
diff --git a/src/components/mapDraw/MapControlDraw.js b/src/components/mapDraw/MapControlDraw.js new file mode 100644 index 00000000..b36edb43 --- /dev/null +++ b/src/components/mapDraw/MapControlDraw.js @@ -0,0 +1,10 @@ +import React from 'react'; +import { GoogleCustomMap } from './google/GoogleMap'; +import { NaverCustomMap } from './naver/NaverMap'; + +export const MapControlDraw = props => { + // console.log('```````````````````````'); + return ( + <>{props.mapType === 'google' ? : } + ); +}; diff --git a/src/components/mapDraw/geojson/airArea.json b/src/components/mapDraw/geojson/airArea.json new file mode 100644 index 00000000..8a58b77e --- /dev/null +++ b/src/components/mapDraw/geojson/airArea.json @@ -0,0 +1,5629 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.965554, 37.61354, 0], + [126.960926, 37.61124, 0], + [126.956293, 37.608865, 0], + [126.951108, 37.604756, 0], + [126.948874, 37.602449, 0], + [126.946903, 37.599997, 0], + [126.945208, 37.597417, 0], + [126.943804, 37.594731, 0], + [126.942701, 37.591957, 0], + [126.941906, 37.589118, 0], + [126.941528, 37.585398, 0], + [126.941357, 37.582133, 0], + [126.9417, 37.578732, 0], + [126.942701, 37.574703, 0], + [126.943804, 37.571929, 0], + [126.945208, 37.569243, 0], + [126.946903, 37.566663, 0], + [126.948874, 37.564211, 0], + [126.951108, 37.561904, 0], + [126.953587, 37.55976, 0], + [126.956293, 37.557795, 0], + [126.959204, 37.556025, 0], + [126.962299, 37.554462, 0], + [126.965554, 37.55312, 0], + [126.968944, 37.552007, 0], + [126.972443, 37.551132, 0], + [126.976026, 37.550503, 0], + [126.981182, 37.550021, 0], + [126.986996, 37.550124, 0], + [126.990634, 37.550503, 0], + [126.995258, 37.551246, 0], + [126.999893, 37.552471, 0], + [127.004361, 37.554462, 0], + [127.007456, 37.556025, 0], + [127.010367, 37.557795, 0], + [127.013073, 37.55976, 0], + [127.015552, 37.561904, 0], + [127.017786, 37.564211, 0], + [127.019757, 37.566663, 0], + [127.021452, 37.569243, 0], + [127.022856, 37.571929, 0], + [127.023959, 37.574703, 0], + [127.024754, 37.577542, 0], + [127.025233, 37.580425, 0], + [127.025393, 37.58333, 0], + [127.025233, 37.586235, 0], + [127.024754, 37.589118, 0], + [127.023754, 37.593016, 0], + [127.022038, 37.59628, 0], + [127.019757, 37.599997, 0], + [127.017786, 37.602449, 0], + [127.014313, 37.606072, 0], + [127.010367, 37.608865, 0], + [127.006073, 37.611104, 0], + [127.00264, 37.612736, 0], + [126.997716, 37.614653, 0], + [126.994217, 37.615528, 0], + [126.990634, 37.616157, 0], + [126.986996, 37.616536, 0], + [126.98333, 37.616663, 0], + [126.979664, 37.616536, 0], + [126.976026, 37.616157, 0], + [126.972443, 37.615528, 0], + [126.968944, 37.614653, 0], + [126.965554, 37.61354, 0] + ] + ] + }, + "properties": { "name": "P73", "description": "서울도심 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.893847, 37.558374, 0], + [126.907326, 37.546054, 0], + [126.928797, 37.543284, 0], + [126.940853, 37.536742, 0], + [126.956415, 37.523686, 0], + [126.962547, 37.521829, 0], + [126.974069, 37.535605, 0], + [126.98629, 37.53486, 0], + [127.002227, 37.524393, 0], + [127.009951, 37.529994, 0], + [127.017809, 37.540036, 0], + [127.036712, 37.541093, 0], + [127.054451, 37.535074, 0], + [127.059139, 37.540584, 0], + [127.063576, 37.546102, 0], + [127.068043, 37.552607, 0], + [127.071648, 37.560364, 0], + [127.073536, 37.566623, 0], + [127.074817, 37.570578, 0], + [127.075939, 37.577916, 0], + [127.075939, 37.586486, 0], + [127.075081, 37.594648, 0], + [127.073193, 37.601584, 0], + [127.070548, 37.609254, 0], + [127.065811, 37.617223, 0], + [127.060661, 37.624565, 0], + [127.054113, 37.631811, 0], + [127.048535, 37.636635, 0], + [127.042448, 37.641055, 0], + [127.035898, 37.645038, 0], + [127.028935, 37.648554, 0], + [127.021611, 37.651575, 0], + [127.010193, 37.655014, 0], + [126.998047, 37.657463, 0], + [126.98513, 37.658548, 0], + [126.976204, 37.658004, 0], + [126.969681, 37.65746, 0], + [126.960411, 37.656101, 0], + [126.949244, 37.654079, 0], + [126.941616, 37.651575, 0], + [126.934292, 37.648554, 0], + [126.927329, 37.645038, 0], + [126.920779, 37.641055, 0], + [126.914692, 37.636635, 0], + [126.909114, 37.631811, 0], + [126.904088, 37.62662, 0], + [126.899651, 37.621102, 0], + [126.895839, 37.615298, 0], + [126.892679, 37.609254, 0], + [126.890197, 37.603013, 0], + [126.88841, 37.596626, 0], + [126.887332, 37.590139, 0], + [126.886972, 37.583602, 0], + [126.887332, 37.577065, 0], + [126.88841, 37.570578, 0], + [126.890373, 37.564718, 0], + [126.893847, 37.558374, 0] + ] + ] + }, + "properties": { "name": "P73B", "description": "서울도심 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.683323, 37.716663, 0], + [126.883354, 37.633327, 0], + [127.666669, 37.966655, 0], + [128.464535, 38.060707, 0], + [128.516672, 38.066657, 0], + [128.533337, 38.133331, 0], + [128.599993, 38.200006, 0], + [128.601066, 38.213276, 0], + [128.559503, 38.270766, 0], + [128.549998, 38.28818, 0], + [128.550683, 38.303774, 0], + [128.543802, 38.311177, 0], + [128.527866, 38.324159, 0], + [128.528777, 38.334883, 0], + [128.519066, 38.3408, 0], + [128.510833, 38.354392, 0], + [128.512767, 38.368459, 0], + [128.456851, 38.433499, 0], + [128.466955, 38.449947, 0], + [128.437266, 38.486662, 0], + [128.423793, 38.522201, 0], + [128.406567, 38.544104, 0], + [128.410929, 38.555948, 0], + [128.40333, 38.56611, 0], + [128.360025, 38.61249, 0], + [128.317379, 38.589921, 0], + [128.314819, 38.549239, 0], + [128.309665, 38.484755, 0], + [128.312063, 38.472729, 0], + [128.282547, 38.432077, 0], + [128.257141, 38.41809, 0], + [128.217014, 38.376524, 0], + [128.193283, 38.366425, 0], + [128.133382, 38.329157, 0], + [128.109897, 38.329182, 0], + [128.067997, 38.306914, 0], + [128.04693, 38.304994, 0], + [127.98762, 38.315522, 0], + [127.888554, 38.326385, 0], + [127.830734, 38.304486, 0], + [127.790909, 38.329807, 0], + [127.784729, 38.343272, 0], + [127.76619, 38.33627, 0], + [127.743181, 38.335623, 0], + [127.574924, 38.330752, 0], + [127.510757, 38.296404, 0], + [127.471619, 38.313107, 0], + [127.390513, 38.331958, 0], + [127.344004, 38.32087, 0], + [127.302704, 38.31203, 0], + [127.251892, 38.32442, 0], + [127.148895, 38.300715, 0], + [127.139421, 38.307234, 0], + [127.111749, 38.293001, 0], + [127.09124, 38.278494, 0], + [127.081604, 38.27754, 0], + [127.066498, 38.260289, 0], + [127.047958, 38.258132, 0], + [127.021866, 38.231169, 0], + [127.010193, 38.216604, 0], + [126.988443, 38.208441, 0], + [126.97792, 38.184768, 0], + [126.975861, 38.176132, 0], + [126.962002, 38.157933, 0], + [126.971309, 38.146338, 0], + [126.96697, 38.138978, 0], + [126.909256, 38.11295, 0], + [126.900035, 38.102644, 0], + [126.884537, 38.099442, 0], + [126.876984, 38.085932, 0], + [126.863479, 38.046199, 0], + [126.813126, 37.993998, 0], + [126.725922, 37.955568, 0], + [126.701889, 37.949071, 0], + [126.680603, 37.951237, 0], + [126.679916, 37.924701, 0], + [126.695277, 37.911293, 0], + [126.68747, 37.888402, 0], + [126.692963, 37.840699, 0], + [126.674423, 37.825514, 0], + [126.666305, 37.782716, 0], + [126.659317, 37.778856, 0], + [126.636048, 37.777631, 0], + [126.595297, 37.763353, 0], + [126.572113, 37.763658, 0], + [126.483209, 37.803957, 0], + [126.447144, 37.829853, 0], + [126.427231, 37.840699, 0], + [126.388361, 37.847803, 0], + [126.276856, 37.826057, 0], + [126.222014, 37.822172, 0], + [126.195145, 37.808699, 0], + [126.189652, 37.790795, 0], + [126.202011, 37.746286, 0], + [126.196518, 37.726194, 0], + [126.178665, 37.714245, 0], + [126.125794, 37.713702, 0], + [126.109314, 37.714788, 0], + [126.166675, 37.650008, 0], + [126.683323, 37.716663, 0] + ] + ] + }, + "properties": { "name": "P518", "description": "휴전선 비행금지구역", "type": "0001"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.633339, 38.63334, 0], + [128.366674, 38.633329, 0], + [128.360025, 38.61249, 0], + [128.559503, 38.270766, 0], + [128.783334, 38.366666, 0], + [128.633339, 38.63334, 0] + ] + ] + }, + "properties": { + "name": "P518E", + "description": "휴전선 비행금지구역", + "type": "0001" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [124.14999, 38.000543, 0], + [124.633328, 37.500544, 0], + [125.833337, 37.500547, 0], + [126.166675, 37.650008, 0], + [126.178665, 37.714245, 0], + [126.109314, 37.714788, 0], + [126.074986, 37.710444, 0], + [126.033773, 37.691452, 0], + [125.676042, 37.707184, 0], + [125.631409, 37.688168, 0], + [125.474854, 37.635985, 0], + [125.297011, 37.614776, 0], + [125.142305, 37.627664, 0], + [125.004498, 37.7099, 0], + [124.93927, 37.764201, 0], + [124.909058, 37.820633, 0], + [124.752778, 38, 0], + [124.14999, 38.000543, 0] + ] + ] + }, + "properties": { "name": "P518W", "description": "휴전선 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.265991, 35.334966, 0], + [129.26417, 35.332474, 0], + [129.262622, 35.329861, 0], + [129.261017, 35.32619, 0], + [129.259987, 35.322409, 0], + [129.259366, 35.318618, 0], + [129.259472, 35.314425, 0], + [129.260146, 35.309958, 0], + [129.261019, 35.307145, 0], + [129.262562, 35.303498, 0], + [129.264278, 35.300556, 0], + [129.265823, 35.297894, 0], + [129.269627, 35.294576, 0], + [129.272106, 35.292495, 0], + [129.276123, 35.289628, 0], + [129.280734, 35.287415, 0], + [129.283934, 35.286152, 0], + [129.287257, 35.285121, 0], + [129.290678, 35.28433, 0], + [129.29417, 35.283786, 0], + [129.299126, 35.283182, 0], + [129.302902, 35.283322, 0], + [129.307194, 35.283743, 0], + [129.311762, 35.284836, 0], + [129.31512, 35.285789, 0], + [129.318363, 35.286977, 0], + [129.322643, 35.288647, 0], + [129.326076, 35.291029, 0], + [129.328995, 35.292991, 0], + [129.332041, 35.296072, 0], + [129.335003, 35.299436, 0], + [129.336719, 35.302658, 0], + [129.33876, 35.30624, 0], + [129.33973, 35.309031, 0], + [129.340761, 35.314768, 0], + [129.340496, 35.319047, 0], + [129.339989, 35.323429, 0], + [129.338608, 35.327591, 0], + [129.336496, 35.331632, 0], + [129.334763, 35.334166, 0], + [129.332765, 35.336567, 0], + [129.32951, 35.339774, 0], + [129.32642, 35.342015, 0], + [129.322464, 35.344494, 0], + [129.317493, 35.346916, 0], + [129.312881, 35.348278, 0], + [129.309458, 35.349069, 0], + [129.304447, 35.349716, 0], + [129.298867, 35.349949, 0], + [129.293632, 35.349436, 0], + [129.288357, 35.348563, 0], + [129.284997, 35.347609, 0], + [129.278646, 35.345005, 0], + [129.275703, 35.343374, 0], + [129.271831, 35.340895, 0], + [129.268072, 35.33732, 0], + [129.265991, 35.334966, 0] + ] + ] + }, + "properties": { "name": "P61A 고리", "description": "새울원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.15596, 35.434939, 0], + [129.1436, 35.423749, 0], + [129.128212, 35.406733, 0], + [129.116135, 35.387371, 0], + [129.105542, 35.367368, 0], + [129.09775, 35.339034, 0], + [129.095535, 35.319047, 0], + [129.095535, 35.300556, 0], + [129.100669, 35.281228, 0], + [129.105233, 35.267181, 0], + [129.111278, 35.253512, 0], + [129.118756, 35.240325, 0], + [129.127611, 35.22772, 0], + [129.137774, 35.215792, 0], + [129.149167, 35.204632, 0], + [129.161705, 35.194325, 0], + [129.175291, 35.184948, 0], + [129.189823, 35.176573, 0], + [129.205189, 35.169264, 0], + [129.221273, 35.163074, 0], + [129.237955, 35.158053, 0], + [129.255106, 35.154236, 0], + [129.272598, 35.151653, 0], + [129.290297, 35.150325, 0], + [129.308071, 35.15026, 0], + [129.325784, 35.151459, 0], + [129.343304, 35.153914, 0], + [129.360496, 35.157605, 0], + [129.377231, 35.162504, 0], + [129.393383, 35.168576, 0], + [129.408828, 35.175773, 0], + [129.42345, 35.184041, 0], + [129.437138, 35.193318, 0], + [129.449788, 35.203533, 0], + [129.461304, 35.214609, 0], + [129.471597, 35.226462, 0], + [129.480589, 35.239003, 0], + [129.488211, 35.252135, 0], + [129.494405, 35.265759, 0], + [129.499124, 35.279772, 0], + [129.503403, 35.298875, 0], + [129.504089, 35.317927, 0], + [129.502716, 35.334173, 0], + [129.501343, 35.347056, 0], + [129.496264, 35.361402, 0], + [129.490356, 35.374494, 0], + [129.48349, 35.38849, 0], + [129.476623, 35.401364, 0], + [129.462823, 35.417428, 0], + [129.451443, 35.428618, 0], + [129.438906, 35.438955, 0], + [129.425307, 35.448361, 0], + [129.410752, 35.456764, 0], + [129.395349, 35.4641, 0], + [129.379218, 35.470312, 0], + [129.362481, 35.475353, 0], + [129.345267, 35.479185, 0], + [129.327706, 35.481778, 0], + [129.309935, 35.483112, 0], + [129.292088, 35.483177, 0], + [129.26857, 35.480802, 0], + [129.256714, 35.479509, 0], + [129.239458, 35.475803, 0], + [129.222666, 35.470884, 0], + [129.206466, 35.46479, 0], + [129.190984, 35.457567, 0], + [129.176336, 35.449271, 0], + [129.166946, 35.442771, 0], + [129.15596, 35.434939, 0] + ] + ] + }, + "properties": { "name": "P61B 고리", "description": "새울원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.506149, 35.86457, 0], + [129.493361, 35.86564, 0], + [129.475443, 35.866814, 0], + [129.457467, 35.866716, 0], + [129.439571, 35.865346, 0], + [129.421897, 35.862715, 0], + [129.404568, 35.858843, 0], + [129.387725, 35.853759, 0], + [129.371494, 35.847502, 0], + [129.356001, 35.840121, 0], + [129.341363, 35.831671, 0], + [129.327693, 35.822218, 0], + [129.315094, 35.811833, 0], + [129.303663, 35.800596, 0], + [129.293486, 35.788593, 0], + [129.28464, 35.775915, 0], + [129.277193, 35.76266, 0], + [129.271199, 35.748928, 0], + [129.266706, 35.734824, 0], + [129.263744, 35.720456, 0], + [129.262338, 35.705933, 0], + [129.262496, 35.691366, 0], + [129.264216, 35.676866, 0], + [129.267484, 35.662542, 0], + [129.272275, 35.648504, 0], + [129.278552, 35.634859, 0], + [129.286265, 35.621709, 0], + [129.295357, 35.609156, 0], + [129.305757, 35.597293, 0], + [129.317385, 35.586212, 0], + [129.330154, 35.575995, 0], + [129.343966, 35.566721, 0], + [129.358716, 35.55846, 0], + [129.38118, 35.547871, 0], + [129.399033, 35.541725, 0], + [129.419632, 35.538373, 0], + [129.442421, 35.53424, 0], + [129.460264, 35.53307, 0], + [129.478165, 35.533168, 0], + [129.495988, 35.534532, 0], + [129.513598, 35.537152, 0], + [129.530862, 35.541009, 0], + [129.547649, 35.546074, 0], + [129.563832, 35.552307, 0], + [129.579288, 35.559662, 0], + [129.593901, 35.568083, 0], + [129.607559, 35.577507, 0], + [129.620158, 35.587862, 0], + [129.631603, 35.599069, 0], + [129.641807, 35.611043, 0], + [129.650691, 35.623695, 0], + [129.662704, 35.644463, 0], + [129.668884, 35.661202, 0], + [129.671829, 35.679087, 0], + [129.673004, 35.698013, 0], + [129.673004, 35.713068, 0], + [129.670258, 35.728677, 0], + [129.664764, 35.746512, 0], + [129.657434, 35.764732, 0], + [129.649768, 35.777904, 0], + [129.640713, 35.790485, 0], + [129.630338, 35.802376, 0], + [129.618721, 35.813487, 0], + [129.605951, 35.823734, 0], + [129.592125, 35.833037, 0], + [129.577348, 35.841327, 0], + [129.561734, 35.848539, 0], + [129.545401, 35.854618, 0], + [129.528474, 35.859518, 0], + [129.506149, 35.86457, 0] + ] + ] + }, + "properties": { "name": "P62B", "description": "월성원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.412133, 35.441186, 0], + [126.401471, 35.44091, 0], + [126.391259, 35.438395, 0], + [126.382196, 35.433811, 0], + [126.374899, 35.427472, 0], + [126.369865, 35.41981, 0], + [126.367943, 35.414222, 0], + [126.36724, 35.408447, 0], + [126.36851, 35.399817, 0], + [126.370867, 35.394341, 0], + [126.376491, 35.386957, 0], + [126.381466, 35.382806, 0], + [126.390388, 35.37805, 0], + [126.397048, 35.376001, 0], + [126.407599, 35.374765, 0], + [126.418183, 35.375796, 0], + [126.4249, 35.377715, 0], + [126.431107, 35.380555, 0], + [126.439054, 35.386348, 0], + [126.444892, 35.393621, 0], + [126.448224, 35.401877, 0], + [126.44882, 35.410555, 0], + [126.446641, 35.419063, 0], + [126.441833, 35.426821, 0], + [126.437322, 35.431312, 0], + [126.431922, 35.435096, 0], + [126.42252, 35.439203, 0], + [126.412133, 35.441186, 0] + ] + ] + }, + "properties": { "name": "P63A", "description": "한빛원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.37979, 37.066915, 0], + [129.390646, 37.067309, 0], + [129.401006, 37.06993, 0], + [129.407285, 37.072833, 0], + [129.412837, 37.076562, 0], + [129.417494, 37.081003, 0], + [129.421114, 37.086021, 0], + [129.424369, 37.094295, 0], + [129.424992, 37.100064, 0], + [129.424349, 37.105831, 0], + [129.422461, 37.111422, 0], + [129.419383, 37.116666, 0], + [129.415209, 37.121405, 0], + [129.410067, 37.125493, 0], + [129.404111, 37.128807, 0], + [129.397524, 37.131245, 0], + [129.390506, 37.132735, 0], + [129.379639, 37.133098, 0], + [129.372489, 37.132082, 0], + [129.365669, 37.130091, 0], + [129.359387, 37.127185, 0], + [129.351383, 37.121314, 0], + [129.34556, 37.11399, 0], + [129.342313, 37.105714, 0], + [129.341697, 37.099945, 0], + [129.343139, 37.09135, 0], + [129.345637, 37.085914, 0], + [129.34928, 37.080905, 0], + [129.353957, 37.076478, 0], + [129.362593, 37.071213, 0], + [129.369176, 37.068776, 0], + [129.376189, 37.067288, 0], + [129.37979, 37.066915, 0] + ] + ] + }, + "properties": { "name": "P64A", "description": "한울원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.395219, 36.934245, 0], + [129.431123, 36.938383, 0], + [129.46559, 36.947431, 0], + [129.481957, 36.953717, 0], + [129.512337, 36.969574, 0], + [129.52612, 36.979026, 0], + [129.538823, 36.9894, 0], + [129.55035, 37.000617, 0], + [129.56953, 37.025238, 0], + [129.577037, 37.038454, 0], + [129.583075, 37.052142, 0], + [129.590568, 37.080514, 0], + [129.591965, 37.094982, 0], + [129.59, 37.123935, 0], + [129.586652, 37.138199, 0], + [129.575348, 37.165759, 0], + [129.567477, 37.178845, 0], + [129.547591, 37.20313, 0], + [129.535727, 37.214144, 0], + [129.508608, 37.233493, 0], + [129.493559, 37.241681, 0], + [129.461056, 37.25477, 0], + [129.426183, 37.263157, 0], + [129.408189, 37.265502, 0], + [129.390005, 37.266587, 0], + [129.353629, 37.264953, 0], + [129.335715, 37.262247, 0], + [129.30112, 37.253162, 0], + [129.284704, 37.246851, 0], + [129.25426, 37.230936, 0], + [129.240465, 37.221453, 0], + [129.227764, 37.211047, 0], + [129.216254, 37.199798, 0], + [129.197144, 37.175121, 0], + [129.18969, 37.161881, 0], + [129.179263, 37.134102, 0], + [129.176367, 37.119776, 0], + [129.175319, 37.090793, 0], + [129.177172, 37.076357, 0], + [129.182739, 37.055177, 0], + [129.192026, 37.034582, 0], + [129.209262, 37.00906, 0], + [129.219897, 36.997294, 0], + [129.244798, 36.976197, 0], + [129.258874, 36.967026, 0], + [129.289743, 36.951784, 0], + [129.323445, 36.941049, 0], + [129.350281, 36.935623, 0], + [129.377066, 36.934063, 0], + [129.395219, 36.934245, 0] + ] + ] + }, + "properties": { "name": "P64B", "description": "한울원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.369655, 36.410003, 0], + [127.372742, 36.410093, 0], + [127.375027, 36.410554, 0], + [127.37843, 36.411538, 0], + [127.380039, 36.412205, 0], + [127.382269, 36.41327, 0], + [127.383642, 36.414445, 0], + [127.385578, 36.415913, 0], + [127.387247, 36.41776, 0], + [127.388507, 36.419578, 0], + [127.38965, 36.4218, 0], + [127.390158, 36.423729, 0], + [127.39068, 36.426117, 0], + [127.390418, 36.428081, 0], + [127.390037, 36.430226, 0], + [127.38965, 36.43178, 0], + [127.388584, 36.433688, 0], + [127.387755, 36.434983, 0], + [127.386518, 36.436475, 0], + [127.384476, 36.438452, 0], + [127.382612, 36.439721, 0], + [127.380724, 36.440964, 0], + [127.377977, 36.442034, 0], + [127.375832, 36.442621, 0], + [127.372742, 36.443242, 0], + [127.369828, 36.443392, 0], + [127.368019, 36.443335, 0], + [127.364454, 36.442841, 0], + [127.361584, 36.442138, 0], + [127.35944, 36.44119, 0], + [127.357909, 36.440412, 0], + [127.356469, 36.439531, 0], + [127.354631, 36.437995, 0], + [127.353473, 36.436855, 0], + [127.352657, 36.435854, 0], + [127.350972, 36.433815, 0], + [127.349721, 36.431084, 0], + [127.349224, 36.428672, 0], + [127.348993, 36.426766, 0], + [127.349294, 36.423866, 0], + [127.350216, 36.421052, 0], + [127.350902, 36.419704, 0], + [127.351731, 36.418409, 0], + [127.352829, 36.416586, 0], + [127.355011, 36.414941, 0], + [127.356341, 36.413953, 0], + [127.358666, 36.412442, 0], + [127.360896, 36.411597, 0], + [127.362565, 36.411034, 0], + [127.365189, 36.410369, 0], + [127.367077, 36.410093, 0], + [127.369655, 36.410003, 0] + ] + ] + }, + "properties": { "name": "P65A", "description": "한국원자력 연구원 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.381494, 36.260519, 0], + [127.407761, 36.262546, 0], + [127.434431, 36.268611, 0], + [127.457199, 36.276386, 0], + [127.482988, 36.287454, 0], + [127.502518, 36.299632, 0], + [127.523869, 36.315771, 0], + [127.535291, 36.327, 0], + [127.545458, 36.338987, 0], + [127.554292, 36.351641, 0], + [127.564316, 36.368222, 0], + [127.571869, 36.387571, 0], + [127.57511, 36.406953, 0], + [127.576483, 36.421429, 0], + [127.576282, 36.435946, 0], + [127.57451, 36.450394, 0], + [127.571178, 36.464663, 0], + [127.566311, 36.478643, 0], + [127.559945, 36.492229, 0], + [127.552127, 36.505316, 0], + [127.542918, 36.517806, 0], + [127.529297, 36.533916, 0], + [127.516251, 36.544949, 0], + [127.499771, 36.556533, 0], + [127.478787, 36.568133, 0], + [127.455139, 36.579144, 0], + [127.429481, 36.586008, 0], + [127.402267, 36.592376, 0], + [127.380295, 36.593479, 0], + [127.358, 36.592811, 0], + [127.340009, 36.591352, 0], + [127.322247, 36.588637, 0], + [127.299271, 36.583004, 0], + [127.271672, 36.573211, 0], + [127.251205, 36.563152, 0], + [127.235413, 36.551569, 0], + [127.215231, 36.537366, 0], + [127.203824, 36.526108, 0], + [127.192841, 36.51074, 0], + [127.177507, 36.488162, 0], + [127.171591, 36.474446, 0], + [127.164688, 36.453322, 0], + [127.163026, 36.431552, 0], + [127.163315, 36.412442, 0], + [127.168121, 36.391993, 0], + [127.173486, 36.374373, 0], + [127.181168, 36.354951, 0], + [127.197019, 36.335281, 0], + [127.207575, 36.323515, 0], + [127.21936, 36.312533, 0], + [127.239532, 36.296865, 0], + [127.261152, 36.285095, 0], + [127.285538, 36.274172, 0], + [127.302704, 36.269743, 0], + [127.321243, 36.26476, 0], + [127.345535, 36.2614, 0], + [127.363491, 36.260328, 0], + [127.381494, 36.260519, 0] + ] + ] + }, + "properties": { "name": "P65B", "description": "한국원자력 연구원 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.435471, 35.242254, 0], + [126.462278, 35.247083, 0], + [126.489029, 35.254591, 0], + [126.511472, 35.263993, 0], + [126.526466, 35.271886, 0], + [126.540563, 35.280813, 0], + [126.553657, 35.290709, 0], + [126.565933, 35.305039, 0], + [126.581039, 35.321288, 0], + [126.596146, 35.342015, 0], + [126.602325, 35.356016, 0], + [126.608505, 35.372255, 0], + [126.610565, 35.387371, 0], + [126.613312, 35.403043, 0], + [126.612062, 35.423548, 0], + [126.609649, 35.43798, 0], + [126.605701, 35.452185, 0], + [126.600246, 35.466057, 0], + [126.593325, 35.479487, 0], + [126.584991, 35.492375, 0], + [126.575306, 35.504622, 0], + [126.564344, 35.516134, 0], + [126.552187, 35.526823, 0], + [126.538929, 35.536608, 0], + [126.524671, 35.545414, 0], + [126.50952, 35.553173, 0], + [126.498642, 35.556809, 0], + [126.477012, 35.565322, 0], + [126.459903, 35.56962, 0], + [126.442397, 35.572685, 0], + [126.424629, 35.574496, 0], + [126.406733, 35.575037, 0], + [126.388848, 35.574305, 0], + [126.37111, 35.572305, 0], + [126.353655, 35.569053, 0], + [126.336617, 35.564573, 0], + [126.320126, 35.558901, 0], + [126.304308, 35.552078, 0], + [126.289284, 35.544158, 0], + [126.275169, 35.535201, 0], + [126.26207, 35.525276, 0], + [126.250087, 35.514458, 0], + [126.239311, 35.50283, 0], + [126.229824, 35.490481, 0], + [126.221698, 35.477505, 0], + [126.214994, 35.464002, 0], + [126.209763, 35.450074, 0], + [126.206043, 35.435827, 0], + [126.203862, 35.421371, 0], + [126.203237, 35.406814, 0], + [126.20417, 35.392269, 0], + [126.206654, 35.377845, 0], + [126.210669, 35.363652, 0], + [126.216185, 35.349799, 0], + [126.223157, 35.33639, 0], + [126.231533, 35.323527, 0], + [126.241249, 35.311308, 0], + [126.25223, 35.299825, 0], + [126.264392, 35.289166, 0], + [126.277642, 35.279411, 0], + [126.291881, 35.270635, 0], + [126.306999, 35.262903, 0], + [126.322878, 35.256276, 0], + [126.339406, 35.250801, 0], + [126.356454, 35.24652, 0], + [126.380539, 35.242815, 0], + [126.399765, 35.240572, 0], + [126.421738, 35.241133, 0], + [126.435471, 35.242254, 0] + ] + ] + }, + "properties": { "name": "P63B", "description": "한빛원전 비행금지구역", "type": "0001" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.806602, 37.665342, 0], + [126.803835, 37.631193, 0], + [126.797918, 37.617409, 0], + [126.804616, 37.591766, 0], + [126.806314, 37.568915, 0], + [126.954214, 37.448681, 0], + [127.060124, 37.447895, 0], + [127.112876, 37.542422, 0], + [127.158247, 37.57961, 0], + [127.141384, 37.615876, 0], + [127.133203, 37.640745, 0], + [127.086943, 37.675806, 0], + [127.054827, 37.693242, 0], + [127.029397, 37.701319, 0], + [126.883354, 37.633327, 0], + [126.806602, 37.665342, 0] + ] + ] + }, + "properties": { + "name": "R75", + "description": "국방부(중앙방공통제소/수방사 방공작전통제소)비행 제한구역", + "type": "0002" + } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", "coordinates": [ + [127.759601, 36.449348, 152.1], + [127.756734, 36.451118, 154.85], + [127.75407, 36.453082, 167.68], + [127.751629, 36.455226, 192.58], + [127.749429, 36.457532, 221.69], + [127.747488, 36.459984, 202.52], + [127.745819, 36.462563, 171.99], + [127.744436, 36.465249, 203.55], + [127.74335, 36.468021, 209.87], + [127.742568, 36.470859, 189.05], + [127.742096, 36.473741, 178.53], + [127.741939, 36.476646, 193.8], + [127.742097, 36.47955, 230.4], + [127.742569, 36.482432, 234.84], + [127.743352, 36.48527, 279.86], + [127.74444, 36.488042, 291.94], + [127.745824, 36.490728, 233.25], + [127.747494, 36.493306, 194.28], + [127.749437, 36.495757, 176], + [127.751639, 36.498063, 193.79], + [127.754083, 36.500206, 195.66], + [127.75675, 36.502169, 196.11], + [127.75962, 36.503938, 212.39], + [127.76267, 36.505499, 248.12], + [127.765879, 36.506841, 333.2], + [127.769221, 36.507952, 518.74], + [127.77267, 36.508825, 504.89], + [127.776202, 36.509453, 505.82], + [127.779788, 36.509831, 433.91], + [127.783401, 36.509956, 377.42], + [127.787014, 36.509828, 393.93], + [127.7906, 36.509446, 407.04], + [127.79413, 36.508815, 501.18], + [127.797579, 36.507939, 404.22], + [127.800919, 36.506825, 465.77], + [127.804126, 36.50548, 376.27], + [127.807174, 36.503916, 379.23], + [127.810041, 36.502145, 365.86], + [127.812705, 36.500179, 346.64], + [127.815146, 36.498034, 368.49], + [127.817345, 36.495726, 424.47], + [127.819285, 36.493273, 410.52], + [127.820951, 36.490693, 485.16], + [127.822331, 36.488006, 406.51], + [127.823415, 36.485233, 288.69], + [127.824194, 36.482394, 217.51], + [127.824662, 36.479512, 337.61], + [127.824816, 36.476607, 467.23], + [127.824655, 36.473703, 522.65], + [127.824179, 36.470822, 359.36], + [127.823393, 36.467984, 317.61], + [127.822302, 36.465213, 311.88], + [127.820916, 36.462528, 247.76], + [127.819243, 36.459951, 199.48], + [127.817298, 36.457501, 174.99], + [127.815095, 36.455196, 163.21], + [127.812651, 36.453055, 159.95], + [127.809984, 36.451093, 147.06], + [127.807115, 36.449326, 147.6], + [127.804066, 36.447766, 149.99], + [127.800859, 36.446426, 148.67], + [127.797519, 36.445316, 165.77], + [127.794072, 36.444444, 203.2], + [127.790543, 36.443817, 243.26], + [127.78696, 36.443439, 221.37], + [127.78335, 36.443315, 249.24], + [127.779739, 36.443443, 314.82], + [127.776157, 36.443824, 268.81], + [127.77263, 36.444455, 271.6], + [127.769184, 36.445331, 240.26], + [127.765846, 36.446445, 177.85], + [127.762641, 36.447788, 162.43], + [127.759601, 36.449348, 152.1] + ] + }, + "properties": { "name": "R20", "description": "보은 반경 3.7Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [129.099492, 35.548315, 268.13], + [129.102252, 35.546479, 186.41], + [129.104805, 35.544453, 148.29], + [129.107132, 35.542255, 119.42], + [129.109213, 35.539899, 111.45], + [129.111035, 35.537405, 105.85], + [129.112582, 35.534792, 110.49], + [129.113844, 35.532078, 104.67], + [129.114809, 35.529286, 101.01], + [129.115472, 35.526435, 103.71], + [129.115828, 35.523548, 132.5], + [129.115872, 35.520647, 134.36], + [129.115606, 35.517754, 143.33], + [129.115031, 35.514891, 135.94], + [129.114152, 35.51208, 114.63], + [129.112975, 35.509341, 124.35], + [129.11151, 35.506697, 140.31], + [129.109767, 35.504166, 124.4], + [129.107759, 35.501769, 162.19], + [129.105503, 35.499523, 117.72], + [129.103016, 35.497446, 140.82], + [129.100315, 35.495553, 166.17], + [129.097422, 35.493859, 170.76], + [129.094359, 35.492377, 156.81], + [129.091149, 35.491118, 123.69], + [129.087817, 35.490091, 122.07], + [129.084387, 35.489304, 123.95], + [129.080887, 35.488764, 187.75], + [129.077341, 35.488474, 234.76], + [129.073779, 35.488436, 195.94], + [129.070225, 35.488652, 161.27], + [129.066709, 35.489119, 181.83], + [129.063255, 35.489833, 208.21], + [129.059892, 35.49079, 202.94], + [129.056643, 35.491982, 184.97], + [129.053534, 35.493399, 203.61], + [129.050589, 35.495032, 244.1], + [129.047829, 35.496867, 310.42], + [129.045276, 35.498892, 414.63], + [129.04295, 35.501089, 539.02], + [129.040868, 35.503444, 649.56], + [129.039045, 35.505937, 805.94], + [129.037497, 35.50855, 961.18], + [129.036233, 35.511263, 961.96], + [129.035265, 35.514055, 851.89], + [129.0346, 35.516905, 731.27], + [129.034242, 35.519791, 655.01], + [129.034195, 35.522692, 750.99], + [129.034459, 35.525585, 654.58], + [129.035031, 35.528449, 624.33], + [129.035909, 35.531261, 766.1], + [129.037084, 35.534, 857.78], + [129.038548, 35.536645, 852.75], + [129.040289, 35.539177, 938.24], + [129.042296, 35.541575, 976.14], + [129.044552, 35.543821, 952.54], + [129.04704, 35.545899, 939.22], + [129.049741, 35.547793, 834.62], + [129.052635, 35.549488, 642.33], + [129.055699, 35.550971, 522.72], + [129.058911, 35.552231, 413.08], + [129.062246, 35.553259, 344.14], + [129.065679, 35.554045, 315.6], + [129.069182, 35.554586, 263.38], + [129.07273, 35.554876, 220.55], + [129.076296, 35.554913, 202.62], + [129.079852, 35.554697, 182.8], + [129.083371, 35.554229, 174.84], + [129.086827, 35.553514, 174.24], + [129.090193, 35.552556, 143.96], + [129.093444, 35.551363, 146.97], + [129.096554, 35.549944, 191.75], + [129.099492, 35.548315, 268.13] + ] + }, + "properties": { "name": "R21", "description": "언양 반경 3.7Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.683234, 37.216605, 0], + [128.682118, 36.917125, 0], + [129.049784, 36.917216, 0], + [129.052174, 37.217423, 0], + [128.683234, 37.216605, 0] + ] + ] + }, + "properties": { "name": "R110", "description": "필승 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.683333, 37.633333, 0], + [127.683341, 37.533289, 0], + [127.8, 37.533333, 0], + [127.782774, 37.617603, 0], + [127.732937, 37.650247, 0], + [127.683333, 37.633333, 0] + ] + ] + }, + "properties": { "name": "R10", "description": "매봉 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.7, 35.15, 0], + [126.683301, 35.135438, 0], + [126.688471, 35.129529, 0], + [126.683367, 35.099909, 0], + [126.749886, 35.083009, 0], + [126.766222, 35.133185, 0], + [126.733333, 35.15, 0], + [126.7, 35.15, 0] + ] + ] + }, + "properties": { "name": "R14", "description": "평동 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.647392, 37.409477, 297.32], + [127.655253, 37.405761, 271.8], + [127.662676, 37.401515, 147.38], + [127.669605, 37.396771, 145.62], + [127.675985, 37.391564, 157.25], + [127.681769, 37.385936, 77.98], + [127.686913, 37.379928, 117.87], + [127.691377, 37.373586, 169.27], + [127.695128, 37.366959, 218.33], + [127.698138, 37.360098, 237.61], + [127.700383, 37.353054, 223.02], + [127.701847, 37.345881, 186.23], + [127.702519, 37.338634, 85.32], + [127.702394, 37.331368, 58.07], + [127.701473, 37.324139, 97.89], + [127.699763, 37.317001, 86.47], + [127.697278, 37.310008, 80.28], + [127.694037, 37.303214, 62.02], + [127.690065, 37.296671, 51.73], + [127.685391, 37.290428, 62.12], + [127.680052, 37.284532, 37.31], + [127.674088, 37.279029, 56.45], + [127.667545, 37.27396, 60.76], + [127.660473, 37.269363, 58.61], + [127.652925, 37.265275, 78.09], + [127.644958, 37.261724, 74.95], + [127.636634, 37.258739, 91.82], + [127.628015, 37.256343, 181.92], + [127.619167, 37.254553, 112.83], + [127.610157, 37.253382, 95.32], + [127.601054, 37.252841, 96.31], + [127.591925, 37.252932, 80.98], + [127.582841, 37.253656, 79.86], + [127.573871, 37.255006, 71.09], + [127.565082, 37.256973, 69.81], + [127.556542, 37.259541, 61.57], + [127.548315, 37.262692, 50.81], + [127.540463, 37.266401, 58.04], + [127.533046, 37.270639, 77.15], + [127.526122, 37.275376, 78.77], + [127.519741, 37.280574, 69.58], + [127.513953, 37.286195, 56.01], + [127.508802, 37.292196, 56.73], + [127.504327, 37.298531, 48.85], + [127.500563, 37.305152, 69.37], + [127.497537, 37.312008, 64.39], + [127.495275, 37.319048, 69.58], + [127.493792, 37.326218, 85.3], + [127.4931, 37.333464, 74.89], + [127.493205, 37.34073, 63.04], + [127.494106, 37.347961, 69.88], + [127.495797, 37.355102, 94.87], + [127.498265, 37.362099, 135.73], + [127.501491, 37.368898, 176.17], + [127.505451, 37.375448, 105.59], + [127.510115, 37.381698, 93.56], + [127.515448, 37.387601, 109.39], + [127.521409, 37.393112, 129.15], + [127.527952, 37.398189, 142.15], + [127.535029, 37.402793, 57.93], + [127.542585, 37.40689, 34.99], + [127.550562, 37.410447, 190.15], + [127.558899, 37.413437, 80.84], + [127.567534, 37.415839, 59.76], + [127.5764, 37.417633, 60.31], + [127.585429, 37.418806, 69.99], + [127.594553, 37.419348, 61.79], + [127.603701, 37.419256, 89.07], + [127.612805, 37.418531, 64.98], + [127.621794, 37.417178, 109.43], + [127.6306, 37.415206, 177.95], + [127.639155, 37.412633, 252.75], + [127.647392, 37.409477, 297.32] + ] + }, + "properties": { "name": "R17", "description": "여주 반경 9.26Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.251125, 36.636601, 136.79], + [127.25379, 36.634637, 102.43], + [127.256231, 36.632495, 81.92], + [127.25843, 36.63019, 49.89], + [127.26037, 36.627739, 53.59], + [127.262037, 36.625163, 76.63], + [127.263417, 36.622479, 147.17], + [127.264501, 36.61971, 141.24], + [127.265279, 36.616875, 126.76], + [127.265747, 36.613996, 90.52], + [127.2659, 36.611095, 145.43], + [127.265738, 36.608195, 114.93], + [127.265262, 36.605317, 96.67], + [127.264475, 36.602484, 98.97], + [127.263383, 36.599716, 69.82], + [127.261995, 36.597035, 42.2], + [127.260322, 36.594462, 43.01], + [127.258375, 36.592015, 75.27], + [127.256171, 36.589714, 53.21], + [127.253725, 36.587576, 73.24], + [127.251057, 36.585617, 68.78], + [127.248186, 36.583852, 60.46], + [127.245135, 36.582295, 85.54], + [127.241927, 36.580957, 74.46], + [127.238585, 36.579849, 122.01], + [127.235136, 36.578978, 71.69], + [127.231606, 36.578352, 123.92], + [127.228022, 36.577976, 82.24], + [127.22441, 36.577852, 102.55], + [127.220798, 36.577981, 143.51], + [127.217215, 36.578362, 169.25], + [127.213686, 36.578992, 187.34], + [127.210239, 36.579867, 187.35], + [127.206899, 36.58098, 223.48], + [127.203694, 36.582322, 169.42], + [127.200646, 36.583884, 156.01], + [127.197779, 36.585652, 122.4], + [127.195114, 36.587615, 125.4], + [127.192673, 36.589756, 183.21], + [127.190473, 36.59206, 251.79], + [127.188532, 36.594509, 291.27], + [127.186864, 36.597085, 248.69], + [127.185482, 36.599768, 204.47], + [127.184396, 36.602537, 178.21], + [127.183614, 36.605371, 184.48], + [127.183144, 36.60825, 197.6], + [127.182988, 36.61115, 182.64], + [127.183147, 36.61405, 189.88], + [127.183621, 36.616928, 192.34], + [127.184405, 36.619762, 185.71], + [127.185494, 36.622531, 178.33], + [127.18688, 36.625212, 148.02], + [127.188552, 36.627787, 177.68], + [127.190497, 36.630235, 234.57], + [127.192701, 36.632537, 216.73], + [127.195147, 36.634676, 209.57], + [127.197815, 36.636636, 259.45], + [127.200687, 36.638402, 262.62], + [127.203739, 36.63996, 321.47], + [127.20695, 36.641299, 209.61], + [127.210294, 36.642408, 175.27], + [127.213745, 36.643279, 106.32], + [127.217278, 36.643905, 66.86], + [127.220866, 36.644282, 95.91], + [127.224481, 36.644406, 144.65], + [127.228095, 36.644277, 117.85], + [127.231682, 36.643895, 87.54], + [127.235214, 36.643264, 103.93], + [127.238663, 36.642388, 159.87], + [127.242005, 36.641274, 152.7], + [127.245212, 36.639931, 174.67], + [127.248261, 36.638368, 143.36], + [127.251125, 36.636601, 136.79] + ] + }, + "properties": { "name": "R19", "description": "조치원 반경 3.7Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.227106, 37.336732, 115.22], + [127.224609, 37.338853, 68.07], + [127.222353, 37.341139, 90.25], + [127.220357, 37.343573, 74.78], + [127.218634, 37.346136, 75.26], + [127.217199, 37.348808, 73.78], + [127.216063, 37.351569, 83.69], + [127.215233, 37.354399, 105.98], + [127.214717, 37.357275, 108.83], + [127.214519, 37.360177, 105.33], + [127.214639, 37.36308, 146.39], + [127.215077, 37.365965, 192.35], + [127.21583, 37.368808, 185.15], + [127.216891, 37.371588, 108.15], + [127.218254, 37.374285, 86.97], + [127.219908, 37.376876, 163.17], + [127.221839, 37.379343, 135.68], + [127.224034, 37.381667, 159.11], + [127.226475, 37.38383, 151.91], + [127.229145, 37.385815, 80.68], + [127.232022, 37.387608, 62.57], + [127.235086, 37.389195, 53.1], + [127.238311, 37.390564, 47.16], + [127.241675, 37.391704, 47.68], + [127.245151, 37.392606, 46.94], + [127.248713, 37.393265, 45.57], + [127.252334, 37.393674, 38.09], + [127.255986, 37.393831, 43.32], + [127.259641, 37.393734, 77.14], + [127.263271, 37.393384, 169.46], + [127.266849, 37.392784, 223.66], + [127.270348, 37.391939, 223.75], + [127.273741, 37.390854, 156.53], + [127.277001, 37.389538, 150.35], + [127.280105, 37.388002, 136.73], + [127.283028, 37.386256, 154.64], + [127.285749, 37.384315, 75.59], + [127.288246, 37.382192, 121.41], + [127.290501, 37.379905, 131.65], + [127.292496, 37.37747, 91.48], + [127.294216, 37.374906, 119.95], + [127.295648, 37.372233, 85.52], + [127.296782, 37.369471, 86.27], + [127.297608, 37.366641, 104.17], + [127.298121, 37.363764, 179.99], + [127.298316, 37.360862, 282.72], + [127.298193, 37.357959, 182.96], + [127.297751, 37.355074, 190.2], + [127.296995, 37.352232, 310.15], + [127.295931, 37.349452, 368.69], + [127.294565, 37.346757, 395.97], + [127.29291, 37.344167, 373.02], + [127.290977, 37.341701, 282.17], + [127.288781, 37.339379, 241.54], + [127.286339, 37.337217, 300.46], + [127.283669, 37.335233, 360], + [127.280792, 37.333441, 390.09], + [127.27773, 37.331856, 373.8], + [127.274506, 37.330488, 374.17], + [127.271145, 37.329349, 377.82], + [127.267671, 37.328448, 314.8], + [127.264112, 37.32779, 264.61], + [127.260495, 37.327382, 181.28], + [127.256846, 37.327225, 119.3], + [127.253194, 37.327322, 80.18], + [127.249567, 37.327672, 75.81], + [127.245992, 37.328271, 73.26], + [127.242496, 37.329116, 70.54], + [127.239105, 37.3302, 60.3], + [127.235847, 37.331515, 81.87], + [127.232745, 37.33305, 155.27], + [127.229822, 37.334795, 182.25], + [127.227106, 37.336732, 115.22] + ] + }, + "properties": { "name": "R35", "description": "매산리 반경 3.7Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [128.202574, 36.34834, 432.3], + [128.19698, 36.354038, 440.03], + [128.192023, 36.360106, 357.13], + [128.18774, 36.3665, 276.11], + [128.184165, 36.373169, 169.68], + [128.181326, 36.380064, 117.19], + [128.179242, 36.387132, 102.1], + [128.177932, 36.394319, 73.25], + [128.177405, 36.40157, 57.81], + [128.177665, 36.408831, 55.49], + [128.17871, 36.416046, 58.75], + [128.180533, 36.423161, 62.5], + [128.183121, 36.43012, 52.92], + [128.186452, 36.436871, 51.19], + [128.190503, 36.443363, 52.55], + [128.195243, 36.449546, 57.49], + [128.200635, 36.455373, 62.71], + [128.20664, 36.4608, 69.35], + [128.21321, 36.465784, 58.74], + [128.220296, 36.470289, 80.77], + [128.227844, 36.474279, 71.78], + [128.235797, 36.477725, 65.47], + [128.244093, 36.4806, 58.03], + [128.25267, 36.482881, 60.74], + [128.261462, 36.484553, 58.16], + [128.270403, 36.485601, 52.41], + [128.279422, 36.486018, 90.89], + [128.288453, 36.485801, 104.27], + [128.297426, 36.484951, 77.8], + [128.306272, 36.483474, 94.57], + [128.314924, 36.481383, 100.61], + [128.323316, 36.478693, 173.12], + [128.331384, 36.475425, 155.55], + [128.339065, 36.471603, 82.79], + [128.346303, 36.467257, 134.78], + [128.353041, 36.46242, 99.65], + [128.359229, 36.457128, 79.93], + [128.364819, 36.451423, 71.1], + [128.369768, 36.445347, 69.1], + [128.37404, 36.438947, 73.68], + [128.377601, 36.432272, 69.35], + [128.380425, 36.425373, 65.57], + [128.382491, 36.418301, 58.41], + [128.383783, 36.411112, 51.66], + [128.38429, 36.403859, 47.12], + [128.384011, 36.396599, 46.08], + [128.382947, 36.389386, 44.95], + [128.381106, 36.382274, 48.76], + [128.378502, 36.375319, 54.28], + [128.375156, 36.368573, 76.85], + [128.371093, 36.362088, 79.65], + [128.366345, 36.355912, 147.71], + [128.360947, 36.350093, 245.77], + [128.35494, 36.344674, 388.88], + [128.348371, 36.339697, 344.26], + [128.341289, 36.3352, 194.13], + [128.333749, 36.331217, 145.2], + [128.325807, 36.327778, 90.24], + [128.317523, 36.324909, 59.23], + [128.308962, 36.322632, 65.57], + [128.300187, 36.320965, 78.21], + [128.291265, 36.319919, 61], + [128.282264, 36.319503, 38.37], + [128.273253, 36.31972, 74.02], + [128.264299, 36.320568, 184.28], + [128.255471, 36.322041, 322.63], + [128.246835, 36.324128, 240.96], + [128.238457, 36.326813, 345.76], + [128.230401, 36.330075, 387.82], + [128.222728, 36.33389, 159.85], + [128.215496, 36.338229, 100.01], + [128.20876, 36.343059, 210.09], + [128.202574, 36.34834, 432.3] + ] + }, + "properties": { "name": "R81", "description": "낙동 반경 9.26Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.347694, 35.936361, 0], + [129.331028, 35.869694, 0], + [129.431028, 35.953028, 0], + [129.397722, 35.952813, 0], + [129.347694, 35.936361, 0] + ] + ] + }, + "properties": { "name": "R89", "description": "오천 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.429889, 35.926917, 0], + [129.442865, 35.892515, 0], + [129.474083, 35.894694, 0], + [129.517151, 35.886193, 0], + [129.521278, 35.890528, 0], + [129.454889, 35.92275, 0], + [129.429889, 35.926917, 0] + ] + ] + }, + "properties": { "name": "R90A", "description": "수성-A 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.442865, 35.892515, 0], + [129.461942, 35.836086, 0], + [129.495442, 35.843415, 0], + [129.517151, 35.886193, 0], + [129.473742, 35.895155, 0], + [129.442865, 35.892515, 0] + ] + ] + }, + "properties": { "name": "R90B", "description": "수성-B 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.516667, 36.333333, 0], + [126.183333, 36.216667, 0], + [126.4, 36.033333, 0], + [126.583333, 36.3, 0], + [126.516667, 36.333333, 0] + ] + ] + }, + "properties": { "name": "R97A", "description": "철매-A 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [125.95, 36.233333, 0], + [126.05, 36.2, 0], + [126.366667, 35.883333, 0], + [126.633224, 36.237074, 0], + [126.502111, 36.35625, 0], + [126.245472, 36.36875, 0], + [126.166667, 36.333333, 0], + [125.95, 36.333333, 0], + [125.95, 36.233333, 0] + ] + ] + }, + "properties": { "name": "R97B", "description": "철매-B 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [128.886577, 34.924907, 0], + [128.891234, 34.929284, 0], + [128.89634, 34.933312, 0], + [128.901856, 34.93696, 0], + [128.907738, 34.940199, 0], + [128.913943, 34.943005, 0], + [128.920423, 34.945357, 0], + [128.927129, 34.947237, 0], + [128.934009, 34.94863, 0], + [128.941012, 34.949526, 0], + [128.948083, 34.949917, 0], + [128.955169, 34.949802, 0], + [128.962216, 34.949181, 0], + [128.969169, 34.948058, 0], + [128.975977, 34.946442, 0], + [128.982586, 34.944346, 0], + [128.988947, 34.941785, 0], + [128.995012, 34.938779, 0], + [129.000733, 34.935351, 0], + [129.006067, 34.931527, 0], + [129.010974, 34.927336, 0], + [129.015416, 34.922811, 0], + [129.01936, 34.917985, 0], + [129.022775, 34.912895, 0], + [129.025636, 34.907581, 0], + [129.027922, 34.902082, 0], + [129.029613, 34.896441, 0], + [129.030699, 34.890701, 0], + [129.031171, 34.884905, 0], + [129.031024, 34.879097, 0], + [129.030262, 34.873321, 0], + [129.028889, 34.867622, 0], + [129.026916, 34.862043, 0], + [129.024358, 34.856626, 0], + [129.021235, 34.851413, 0], + [129.017571, 34.846443, 0], + [129.013393, 34.841754, 0], + [129.008733, 34.837381, 0], + [129.003628, 34.833358, 0], + [128.998115, 34.829715, 0], + [128.992237, 34.82648, 0], + [128.986038, 34.823678, 0], + [128.979566, 34.821329, 0], + [128.972869, 34.819452, 0], + [128.965999, 34.818062, 0], + [128.959007, 34.817167, 0], + [128.951947, 34.816776, 0], + [128.944873, 34.816891, 0], + [128.937837, 34.817512, 0], + [128.930894, 34.818633, 0], + [128.924096, 34.820246, 0], + [128.917495, 34.822339, 0], + [128.911141, 34.824896, 0], + [128.905083, 34.827898, 0], + [128.899365, 34.831321, 0], + [128.894032, 34.835141, 0], + [128.889125, 34.839327, 0], + [128.88468, 34.843848, 0], + [128.880732, 34.848669, 0], + [128.87731, 34.853755, 0], + [128.874442, 34.859066, 0], + [128.872148, 34.864561, 0], + [128.870446, 34.8702, 0], + [128.869349, 34.875939, 0], + [128.868866, 34.881735, 0], + [128.869001, 34.887543, 0], + [128.869752, 34.893319, 0], + [128.871115, 34.89902, 0], + [128.873078, 34.904602, 0], + [128.875627, 34.910022, 0], + [128.878743, 34.915239, 0], + [128.882402, 34.920213, 0], + [128.886577, 34.924907, 0] + ] + }, + "properties": { "name": "R100", "description": "남형제도 반경 7.4Km 비행 제한구역", "type": "0002", "tessellate": true} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.154617, 36.679506, 0], + [126.151306, 36.549556, 0], + [126.230472, 36.552333, 0], + [126.199639, 36.67675, 0], + [126.154617, 36.679506, 0] + ] + ] + }, + "properties": { "name": "R108A", "description": "안흥-A 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.154617, 36.679506, 0], + [126.124639, 36.469556, 0], + [126.250472, 36.490389, 0], + [126.199639, 36.67675, 0], + [126.154617, 36.679506, 0] + ] + ] + }, + "properties": { "name": "R108B", "description": "안흥-B 비행 제한구역", "type": "0002"} + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [125.998, 36.636194, 0], + [125.713889, 35.021944, 0], + [126.052194, 34.973361, 0], + [126.297944, 36.569556, 0], + [126.17325, 36.677306, 0], + [125.998, 36.636194, 0] + ] + ] + }, + "properties": { "name": "R108C", "description": "안흥-C 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.154617, 36.679506, 0], + [126.006333, 36.38625, 0], + [126.152139, 36.36125, 0], + [126.197972, 36.67675, 0], + [126.154617, 36.679506, 0] + ] + ] + }, + "properties": { "name": "R108D", "description": "안흥-D 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.154617, 36.679506, 0], + [126.228528, 36.559556, 0], + [126.265194, 36.560111, 0], + [126.265194, 36.615944, 0], + [126.199917, 36.686472, 0], + [126.154617, 36.679506, 0] + ] + ] + }, + "properties": { "name": "R108E", "description": "안흥-E 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.154617, 36.679506, 0], + [125.943833, 36.302917, 0], + [126.009111, 36.28875, 0], + [126.197972, 36.67675, 0], + [126.154617, 36.679506, 0] + ] + ] + }, + "properties": { "name": "R108F", "description": "안흥-F 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.416667, 36.235278, 0], + [126.420833, 36.101944, 0], + [126.638056, 36.106944, 0], + [126.652222, 36.154444, 0], + [126.649444, 36.240556, 0], + [126.416667, 36.235278, 0] + ] + ] + }, + "properties": { "name": "R111", "description": "응촌 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.785278, 37.572222, 0], + [127.803333, 37.533333, 0], + [127.828333, 37.516667, 0], + [127.87, 37.530556, 0], + [127.875556, 37.559722, 0], + [127.861667, 37.572222, 0], + [127.785278, 37.572222, 0] + ] + ] + }, + "properties": { "name": "R114", "description": "비승 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [125.826484, 34.740764, 0], + [125.829562, 34.73397, 0], + [125.831907, 34.72698, 0], + [125.833502, 34.719849, 0], + [125.834335, 34.712631, 0], + [125.834399, 34.705381, 0], + [125.833694, 34.698154, 0], + [125.832226, 34.691005, 0], + [125.830007, 34.683988, 0], + [125.827052, 34.677157, 0], + [125.823385, 34.670564, 0], + [125.819034, 34.664258, 0], + [125.814032, 34.658288, 0], + [125.808417, 34.6527, 0], + [125.802232, 34.647534, 0], + [125.795525, 34.642832, 0], + [125.788345, 34.638627, 0], + [125.780748, 34.634954, 0], + [125.772791, 34.631838, 0], + [125.764536, 34.629304, 0], + [125.756043, 34.627372, 0], + [125.747379, 34.626055, 0], + [125.738608, 34.625364, 0], + [125.729798, 34.625304, 0], + [125.721014, 34.625876, 0], + [125.712324, 34.627074, 0], + [125.703794, 34.628891, 0], + [125.695489, 34.631312, 0], + [125.687471, 34.634319, 0], + [125.679801, 34.637889, 0], + [125.672538, 34.641995, 0], + [125.665737, 34.646605, 0], + [125.659449, 34.651686, 0], + [125.653722, 34.657197, 0], + [125.648601, 34.663098, 0], + [125.644124, 34.669344, 0], + [125.640325, 34.675886, 0], + [125.637233, 34.682676, 0], + [125.634872, 34.689662, 0], + [125.633261, 34.69679, 0], + [125.632411, 34.704007, 0], + [125.632329, 34.711257, 0], + [125.633016, 34.718485, 0], + [125.634467, 34.725636, 0], + [125.636671, 34.732657, 0], + [125.639612, 34.739492, 0], + [125.643267, 34.746091, 0], + [125.647609, 34.752403, 0], + [125.652604, 34.75838, 0], + [125.658216, 34.763976, 0], + [125.6644, 34.769149, 0], + [125.67111, 34.773859, 0], + [125.678296, 34.77807, 0], + [125.685901, 34.78175, 0], + [125.693869, 34.784871, 0], + [125.702138, 34.78741, 0], + [125.710646, 34.789346, 0], + [125.719327, 34.790666, 0], + [125.728115, 34.791358, 0], + [125.736943, 34.791418, 0], + [125.745744, 34.790846, 0], + [125.75445, 34.789645, 0], + [125.762996, 34.787825, 0], + [125.771315, 34.785399, 0], + [125.779345, 34.782387, 0], + [125.787024, 34.778811, 0], + [125.794293, 34.774699, 0], + [125.801098, 34.770081, 0], + [125.807386, 34.764993, 0], + [125.81311, 34.759474, 0], + [125.818226, 34.753567, 0], + [125.822694, 34.747315, 0], + [125.826484, 34.740764, 0] + ] + }, + "properties": { "name": "R117", "description": "자은도 반경 9.26Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.520611, 37.536694, 0], + [127.470446, 37.52053, 0], + [127.470333, 37.511694, 0], + [127.52975, 37.511694, 0], + [127.520611, 37.536694, 0] + ] + ] + }, + "properties": { "name": "R1", "description": "용문 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.23907, 35.788827, 0], + [126.22751, 35.777749, 0], + [126.214807, 35.76753, 0], + [126.201058, 35.758246, 0], + [126.186366, 35.749969, 0], + [126.170845, 35.74276, 0], + [126.154611, 35.736674, 0], + [126.137788, 35.731757, 0], + [126.120503, 35.728047, 0], + [126.102886, 35.725572, 0], + [126.085071, 35.724349, 0], + [126.067193, 35.72439, 0], + [126.049387, 35.725692, 0], + [126.031787, 35.728247, 0], + [126.014527, 35.732035, 0], + [125.997738, 35.737027, 0], + [125.981546, 35.743186, 0], + [125.966074, 35.750464, 0], + [125.95144, 35.758808, 0], + [125.937754, 35.768153, 0], + [125.925121, 35.77843, 0], + [125.913636, 35.789559, 0], + [125.903388, 35.801457, 0], + [125.894455, 35.814034, 0], + [125.886904, 35.827193, 0], + [125.880795, 35.840836, 0], + [125.876173, 35.854858, 0], + [125.873076, 35.869154, 0], + [125.871527, 35.883614, 0], + [125.871539, 35.898128, 0], + [125.873113, 35.912586, 0], + [125.876238, 35.926878, 0], + [125.88089, 35.940894, 0], + [125.887036, 35.954529, 0], + [125.894628, 35.967678, 0], + [125.90361, 35.980241, 0], + [125.913914, 35.992121, 0], + [125.925462, 36.003229, 0], + [125.938165, 36.013478, 0], + [125.951928, 36.022792, 0], + [125.966645, 36.031098, 0], + [125.982204, 36.038334, 0], + [125.998487, 36.044443, 0], + [126.015368, 36.049379, 0], + [126.032719, 36.053104, 0], + [126.050406, 36.05559, 0], + [126.068295, 36.056817, 0], + [126.086249, 36.056777, 0], + [126.104129, 36.055469, 0], + [126.121799, 36.052903, 0], + [126.139124, 36.0491, 0], + [126.155971, 36.044088, 0], + [126.172211, 36.037906, 0], + [126.18772, 36.030601, 0], + [126.202379, 36.022228, 0], + [126.216078, 36.012853, 0], + [126.228711, 36.002546, 0], + [126.240182, 35.991387, 0.69], + [126.250404, 35.97946, 0], + [126.259299, 35.966857, 0], + [126.266801, 35.953675, 0], + [126.272853, 35.940012, 0], + [126.277409, 35.925975, 0], + [126.280435, 35.911669, 0], + [126.28191, 35.897204, 0], + [126.281823, 35.88269, 0], + [126.280175, 35.868238, 0], + [126.27698, 35.853957, 0], + [126.272262, 35.839955, 0], + [126.266059, 35.82634, 0], + [126.258419, 35.813215, 0], + [126.2494, 35.800678, 0], + [126.23907, 35.788827, 0] + ] + }, + "properties": { "name": "R105", "description": "직도 반경 18.52Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [126.531181, 35.586883, 23.54], + [126.535032, 35.580315, 62.74], + [126.538164, 35.573498, 0], + [126.540553, 35.566486, 0], + [126.542181, 35.55933, 0], + [126.543037, 35.552087, 0], + [126.543113, 35.54481, 0], + [126.542409, 35.537556, 0.41], + [126.540931, 35.530379, 1.26], + [126.538691, 35.523334, 5.76], + [126.535705, 35.516475, 9.66], + [126.531996, 35.509853, 12.76], + [126.527594, 35.50352, 49.04], + [126.52253, 35.497523, 84.35], + [126.516845, 35.491908, 84.86], + [126.510581, 35.486718, 79.77], + [126.503787, 35.481991, 69.11], + [126.496513, 35.477764, 52.97], + [126.488814, 35.474069, 31.48], + [126.480751, 35.470934, 9.8], + [126.472383, 35.468382, 9.32], + [126.463774, 35.466434, 7.62], + [126.45499, 35.465103, 5.72], + [126.446097, 35.464401, 3.64], + [126.437163, 35.464331, 1.39], + [126.428256, 35.464896, 0], + [126.419442, 35.46609, 0], + [126.41079, 35.467904, 0], + [126.402364, 35.470325, 0], + [126.394228, 35.473335, 0], + [126.386445, 35.47691, 0], + [126.379074, 35.481023, 0], + [126.37217, 35.485644, 0], + [126.365785, 35.490736, 0], + [126.35997, 35.496262, 0], + [126.354767, 35.502179, 0], + [126.350217, 35.508443, 0], + [126.346355, 35.515006, 0], + [126.343209, 35.521817, 0], + [126.340804, 35.528826, 0], + [126.339158, 35.535979, 0], + [126.338284, 35.543221, 0], + [126.33819, 35.550498, 0], + [126.338875, 35.557753, 0], + [126.340335, 35.564932, 0], + [126.34256, 35.571981, 0], + [126.345531, 35.578845, 0], + [126.349227, 35.585472, 0], + [126.35362, 35.591812, 0], + [126.358677, 35.597816, 0], + [126.364358, 35.603438, 0], + [126.370622, 35.608636, 0], + [126.37742, 35.61337, 0], + [126.3847, 35.617605, 0], + [126.392407, 35.621306, 0], + [126.400482, 35.624447, 0], + [126.408864, 35.627004, 0], + [126.417488, 35.628956, 0], + [126.42629, 35.630289, 0], + [126.435201, 35.630993, 0], + [126.444154, 35.631063, 0], + [126.45308, 35.630497, 0.06], + [126.461911, 35.629301, 4.86], + [126.47058, 35.627483, 7.09], + [126.47902, 35.625057, 7.66], + [126.487168, 35.622041, 71.66], + [126.49496, 35.61846, 151.7], + [126.502339, 35.61434, 231.89], + [126.509246, 35.609712, 294.76], + [126.515631, 35.604612, 147.37], + [126.521443, 35.599078, 154.46], + [126.52664, 35.593154, 119.22], + [126.531181, 35.586883, 23.54] + ] + }, + "properties": { "name": "R104", "description": "미여도 반경 9.25Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.444778, 37.370861, 0], + [127.412556, 37.33475, 0], + [127.428667, 37.321972, 0], + [127.473111, 37.36725, 0], + [127.444778, 37.370861, 0] + ] + ] + }, + "properties": { "name": "R122", "description": "천덕봉 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [125.302553, 34.476138, 0], + [125.294924, 34.479825, 0], + [125.287712, 34.484045, 0], + [125.280973, 34.488767, 0], + [125.274758, 34.493955, 0], + [125.269115, 34.49957, 0], + [125.264086, 34.505568, 0], + [125.25971, 34.511904, 0], + [125.25602, 34.518531, 0], + [125.253045, 34.525397, 0], + [125.250807, 34.532451, 0], + [125.249323, 34.539638, 0], + [125.248606, 34.546905, 0], + [125.248659, 34.554195, 0], + [125.249485, 34.561454, 0], + [125.251075, 34.568626, 0], + [125.253419, 34.575656, 0], + [125.256499, 34.582492, 0], + [125.260291, 34.58908, 0], + [125.264766, 34.595371, 0], + [125.269892, 34.601317, 0], + [125.275628, 34.606872, 0], + [125.281931, 34.611995, 0], + [125.288754, 34.616645, 0], + [125.296044, 34.620788, 0], + [125.303745, 34.624391, 0], + [125.3118, 34.627428, 0], + [125.320146, 34.629876, 0], + [125.32872, 34.631715, 0], + [125.337456, 34.632931, 0], + [125.346288, 34.633516, 0], + [125.355148, 34.633464, 0], + [125.36397, 34.632777, 0], + [125.372684, 34.631459, 0], + [125.381225, 34.62952, 0], + [125.389529, 34.626976, 0], + [125.39753, 34.623845, 0], + [125.405169, 34.620152, 0], + [125.412387, 34.615925, 0], + [125.419128, 34.611196, 0], + [125.425343, 34.606001, 0], + [125.430983, 34.600379, 0], + [125.436006, 34.594375, 0], + [125.440373, 34.588032, 0], + [125.444051, 34.5814, 0], + [125.447013, 34.574529, 0], + [125.449236, 34.567472, 0], + [125.450703, 34.560283, 0], + [125.451404, 34.553015, 0], + [125.451333, 34.545725, 0], + [125.45049, 34.538467, 0], + [125.448884, 34.531298, 0], + [125.446525, 34.524271, 0], + [125.443432, 34.51744, 0], + [125.439629, 34.510857, 0], + [125.435145, 34.504572, 0], + [125.430014, 34.498633, 0], + [125.424275, 34.493085, 0], + [125.417972, 34.48797, 0], + [125.411153, 34.483327, 0], + [125.40387, 34.479191, 0], + [125.396178, 34.475593, 0], + [125.388135, 34.472561, 0], + [125.379803, 34.470118, 0], + [125.371244, 34.468283, 0], + [125.362525, 34.467068, 0], + [125.35371, 34.466485, 0], + [125.344868, 34.466536, 0], + [125.336064, 34.467222, 0], + [125.327366, 34.468537, 0], + [125.31884, 34.470471, 0], + [125.31055, 34.473011, 0], + [125.302553, 34.476138, 0] + ] + }, + "properties": { "name": "R125", "description": "흑산도 반경 9.26Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [127.307229, 34.903117, 467.12], + [127.308561, 34.903049, 418.61], + [127.309881, 34.902887, 364.81], + [127.311179, 34.902631, 317.22], + [127.312445, 34.902283, 283.77], + [127.313668, 34.901847, 242.02], + [127.314841, 34.901324, 203.83], + [127.315954, 34.900719, 171.78], + [127.316998, 34.900037, 154.22], + [127.317965, 34.899284, 134.34], + [127.318849, 34.898463, 114.47], + [127.319643, 34.897583, 97.68], + [127.320339, 34.89665, 84.38], + [127.320934, 34.89567, 82.68], + [127.321423, 34.894651, 74.25], + [127.321801, 34.893601, 68.15], + [127.322066, 34.892529, 62.6], + [127.322217, 34.891441, 63.12], + [127.322251, 34.890347, 54.2], + [127.322169, 34.889254, 48.12], + [127.321971, 34.888172, 46.93], + [127.321658, 34.887107, 44.62], + [127.321234, 34.88607, 42.84], + [127.320702, 34.885066, 41.63], + [127.320064, 34.884104, 56.91], + [127.319327, 34.883192, 68.21], + [127.318496, 34.882336, 60.26], + [127.317577, 34.881542, 46.99], + [127.316577, 34.880817, 40.61], + [127.315504, 34.880166, 29.14], + [127.314366, 34.879595, 26], + [127.313172, 34.879107, 32.05], + [127.31193, 34.878706, 31.52], + [127.31065, 34.878396, 27.17], + [127.309343, 34.878178, 26.76], + [127.308017, 34.878055, 30.91], + [127.306683, 34.878027, 33.22], + [127.305351, 34.878094, 36.18], + [127.304032, 34.878256, 42.11], + [127.302734, 34.878512, 45.59], + [127.301469, 34.87886, 45.2], + [127.300246, 34.879297, 45.86], + [127.299073, 34.879819, 51.32], + [127.297961, 34.880424, 71.3], + [127.296917, 34.881106, 80.51], + [127.295949, 34.881859, 82.88], + [127.295066, 34.882679, 86.18], + [127.294272, 34.88356, 86.98], + [127.293575, 34.884493, 89.69], + [127.29298, 34.885473, 97.18], + [127.292492, 34.886491, 108.37], + [127.292113, 34.887541, 122.49], + [127.291848, 34.888614, 140.83], + [127.291697, 34.889701, 148.13], + [127.291662, 34.890796, 153.32], + [127.291744, 34.891888, 166.62], + [127.291942, 34.892971, 189.18], + [127.292254, 34.894035, 207.95], + [127.292678, 34.895073, 241.76], + [127.293211, 34.896077, 268.22], + [127.293848, 34.897038, 301.51], + [127.294585, 34.897951, 334.05], + [127.295416, 34.898807, 358.06], + [127.296335, 34.899601, 383.76], + [127.297335, 34.900326, 431.58], + [127.298408, 34.900977, 467.67], + [127.299546, 34.901548, 491.02], + [127.300741, 34.902036, 495.02], + [127.301983, 34.902437, 462.27], + [127.303263, 34.902747, 453.07], + [127.304571, 34.902965, 449.07], + [127.305897, 34.903088, 461.24], + [127.307229, 34.903117, 467.12] + ] + }, + "properties": { "name": "R127", "description": "벌교 반경 1.4Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.668611, 35.349722, 0], + [126.688889, 35.288889, 0], + [126.711111, 35.280278, 0], + [126.709167, 35.351389, 0], + [126.688611, 35.356667, 0], + [126.668611, 35.349722, 0] + ] + ] + }, + "properties": { "name": "R129", "description": "수련산 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.155702, 37.357252, 0], + [126.1542, 37.359899, 0], + [126.152995, 37.36264, 0], + [126.152094, 37.365453, 0], + [126.151505, 37.368319, 0], + [126.151233, 37.371214, 0], + [126.15128, 37.374117, 0], + [126.151644, 37.377006, 0], + [126.152324, 37.379859, 0], + [126.153315, 37.382653, 0], + [126.154608, 37.385369, 0], + [126.156195, 37.387984, 0], + [126.158062, 37.39048, 0], + [126.160196, 37.392837, 0], + [126.162581, 37.395037, 0], + [126.165198, 37.397063, 0], + [126.168027, 37.398901, 0], + [126.171048, 37.400535, 0], + [126.174236, 37.401954, 0], + [126.177569, 37.403147, 0], + [126.181019, 37.404104, 0], + [126.184561, 37.404819, 0], + [126.188169, 37.405286, 0], + [126.191814, 37.405501, 0], + [126.195468, 37.405463, 0], + [126.199105, 37.405172, 0], + [126.202696, 37.40463, 0], + [126.206213, 37.403841, 0], + [126.209631, 37.402812, 0], + [126.212922, 37.40155, 0], + [126.216063, 37.400065, 0], + [126.219028, 37.398368, 0], + [126.221796, 37.396472, 0], + [126.224345, 37.394392, 0], + [126.226656, 37.392143, 0], + [126.228711, 37.389742, 0], + [126.230495, 37.387208, 0], + [126.231995, 37.384561, 0], + [126.233198, 37.381819, 0], + [126.234095, 37.379005, 0], + [126.234681, 37.376139, 0], + [126.23495, 37.373243, 0], + [126.2349, 37.37034, 0], + [126.234533, 37.367452, 0], + [126.233849, 37.3646, 0], + [126.232856, 37.361806, 0], + [126.231561, 37.359091, 0], + [126.229972, 37.356477, 0], + [126.228103, 37.353982, 0], + [126.225968, 37.351626, 0], + [126.223583, 37.349428, 0], + [126.220966, 37.347402, 0], + [126.218137, 37.345566, 0], + [126.215118, 37.343933, 0], + [126.211931, 37.342515, 0], + [126.208601, 37.341323, 0], + [126.205153, 37.340366, 0], + [126.201614, 37.339652, 0], + [126.198009, 37.339186, 0], + [126.194368, 37.338971, 0], + [126.190716, 37.339009, 0], + [126.187083, 37.3393, 0], + [126.183495, 37.339841, 0], + [126.17998, 37.340629, 0], + [126.176565, 37.341657, 0], + [126.173276, 37.342918, 0], + [126.170137, 37.344402, 0], + [126.167173, 37.346098, 0], + [126.164405, 37.347993, 0], + [126.161856, 37.350072, 0], + [126.159544, 37.35232, 0], + [126.157488, 37.354719, 0], + [126.155702, 37.357252, 0] + ] + }, + "properties": { "name": "R133", "description": "초치도 반경 3.7Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.283333, 35.119444, 0], + [129.173611, 35.019444, 0], + [129.236111, 34.972222, 0], + [129.344444, 35.073611, 0], + [129.283333, 35.119444, 0] + ] + ] + }, + "properties": { "name": "R143", "description": "부산KCG 비행 제한구역", "type": "0002" } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.535927, 36.324769, 13.87], + [126.53469, 36.324566, 18.99], + [126.533436, 36.324451, 25.57], + [126.532175, 36.324424, 20.81], + [126.530915, 36.324486, 24.46], + [126.529666, 36.324636, 34.33], + [126.528439, 36.324873, 54.71], + [126.527242, 36.325195, 78.83], + [126.526084, 36.3256, 90.57], + [126.524975, 36.326085, 73.06], + [126.523922, 36.326646, 51.88], + [126.522934, 36.327279, 48.32], + [126.522018, 36.327978, 64.28], + [126.521181, 36.32874, 52.17], + [126.52043, 36.329557, 32.67], + [126.51977, 36.330424, 15.49], + [126.519206, 36.331333, 0.95], + [126.518743, 36.332279, 0.09], + [126.518384, 36.333254, 0], + [126.518132, 36.334251, 0], + [126.517988, 36.335261, 0], + [126.517955, 36.336278, 0], + [126.518031, 36.337293, 0], + [126.518217, 36.338298, 0], + [126.518511, 36.339287, 0], + [126.518911, 36.340252, 0], + [126.519414, 36.341185, 0], + [126.520016, 36.342078, 0], + [126.520712, 36.342927, 0], + [126.521498, 36.343723, 0], + [126.522367, 36.344461, 0], + [126.523312, 36.345135, 0], + [126.524326, 36.34574, 0], + [126.525403, 36.346272, 0], + [126.526532, 36.346726, 0], + [126.527707, 36.347099, 0], + [126.528917, 36.347388, 0], + [126.530154, 36.347591, 0], + [126.531409, 36.347706, 0], + [126.532671, 36.347733, 0], + [126.533931, 36.347672, 0], + [126.53518, 36.347522, 0], + [126.536408, 36.347285, 0], + [126.537605, 36.346962, 0], + [126.538763, 36.346557, 0], + [126.539873, 36.346072, 0], + [126.540926, 36.345511, 0], + [126.541914, 36.344878, 0], + [126.54283, 36.344178, 0], + [126.543666, 36.343417, 0], + [126.544418, 36.342599, 0], + [126.545077, 36.341732, 1.2], + [126.545641, 36.340822, 12.43], + [126.546104, 36.339876, 19.22], + [126.546462, 36.338901, 20.55], + [126.546714, 36.337905, 22.25], + [126.546857, 36.336894, 33.19], + [126.546891, 36.335878, 59.22], + [126.546814, 36.334863, 85.51], + [126.546627, 36.333857, 101.42], + [126.546333, 36.332868, 83.18], + [126.545933, 36.331904, 65.61], + [126.545429, 36.330971, 62.52], + [126.544827, 36.330077, 54.37], + [126.544131, 36.329229, 39.56], + [126.543345, 36.328433, 32.55], + [126.542477, 36.327696, 24.8], + [126.541531, 36.327022, 20.08], + [126.540517, 36.326417, 19.8], + [126.539441, 36.325885, 12.02], + [126.538311, 36.325431, 9.27], + [126.537137, 36.325058, 10.32], + [126.535927, 36.324769, 13.87] + ] + }, + "properties": { "name": "R138", "description": "대천 반경 1.3Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.417877, 36.848243, 170.18], + [127.418676, 36.847451, 186.44], + [127.419385, 36.846606, 178.38], + [127.42, 36.845715, 173.17], + [127.420515, 36.844785, 186.69], + [127.420927, 36.843822, 203.84], + [127.421232, 36.842834, 226.84], + [127.421429, 36.841828, 261.13], + [127.421515, 36.840813, 293.69], + [127.421491, 36.839796, 319.45], + [127.421356, 36.838784, 355.54], + [127.421111, 36.837785, 376.7], + [127.420758, 36.836807, 358.36], + [127.420301, 36.835858, 315.12], + [127.419741, 36.834944, 284.45], + [127.419084, 36.834072, 256.43], + [127.418335, 36.83325, 234.58], + [127.417499, 36.832483, 210.89], + [127.416583, 36.831778, 186.51], + [127.415593, 36.831138, 165.13], + [127.414538, 36.830571, 151.6], + [127.413425, 36.830079, 141.61], + [127.412262, 36.829667, 136.56], + [127.41106, 36.829337, 128.72], + [127.409825, 36.829093, 131.14], + [127.408569, 36.828935, 140.05], + [127.407301, 36.828866, 134.56], + [127.406029, 36.828885, 141.21], + [127.404765, 36.828993, 133.54], + [127.403517, 36.829189, 139.66], + [127.402296, 36.829471, 147.83], + [127.40111, 36.829838, 157.69], + [127.399968, 36.830285, 158.81], + [127.398879, 36.830811, 150.91], + [127.397852, 36.831411, 138.28], + [127.396893, 36.832079, 150.59], + [127.396012, 36.832813, 148.87], + [127.395213, 36.833605, 134.66], + [127.394504, 36.834449, 135.47], + [127.393889, 36.83534, 136.68], + [127.393374, 36.836271, 135.99], + [127.392962, 36.837233, 139.04], + [127.392656, 36.838221, 142.25], + [127.392459, 36.839227, 145.93], + [127.392373, 36.840242, 146.1], + [127.392397, 36.84126, 149.34], + [127.392532, 36.842272, 158.16], + [127.392777, 36.84327, 180.54], + [127.393129, 36.844248, 225.83], + [127.393587, 36.845198, 230.09], + [127.394146, 36.846112, 205.06], + [127.394803, 36.846983, 201.67], + [127.395553, 36.847805, 221.39], + [127.396389, 36.848572, 250.08], + [127.397305, 36.849278, 275.09], + [127.398295, 36.849917, 289.62], + [127.39935, 36.850485, 304.44], + [127.400464, 36.850976, 313.99], + [127.401627, 36.851389, 303.38], + [127.40283, 36.851718, 287.07], + [127.404065, 36.851963, 259.85], + [127.405321, 36.85212, 227.59], + [127.40659, 36.852189, 186.14], + [127.407862, 36.852169, 150.99], + [127.409126, 36.852061, 127.57], + [127.410374, 36.851865, 132.08], + [127.411596, 36.851583, 147.6], + [127.412783, 36.851216, 171.73], + [127.413925, 36.850768, 151.89], + [127.415013, 36.850242, 119.84], + [127.416041, 36.849642, 113.19], + [127.416999, 36.848973, 130.7], + [127.417877, 36.848243, 170.18] + ] + }, + "properties": { "name": "R139", "description": "진천 반경 1.3Km 비행 제한구역", "type": "0002", "tessellate": true } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.404371, 37.380504, 0], + [126.422041, 37.376657, 0], + [126.440282, 37.375304, 0], + [126.458541, 37.376486, 0], + [126.476267, 37.380167, 0], + [126.48476, 37.382913, 0], + [126.492921, 37.386235, 0], + [126.507999, 37.394508, 0], + [126.521044, 37.404733, 0], + [126.526677, 37.410483, 0], + [126.535951, 37.423041, 0], + [126.539521, 37.429753, 0], + [126.54439, 37.443789, 0], + [126.545652, 37.451006, 0], + [126.545781, 37.465564, 0], + [126.544646, 37.472794, 0], + [126.540022, 37.486882, 0], + [126.536567, 37.493633, 0], + [126.527501, 37.506291, 0], + [126.521959, 37.512101, 0], + [126.515799, 37.517506, 0], + [126.501816, 37.526938, 0], + [126.485978, 37.534299, 0], + [126.468765, 37.539364, 0], + [126.450703, 37.54198, 0], + [126.432343, 37.542066, 0], + [126.414243, 37.53962, 0], + [126.396956, 37.534716, 0], + [126.381009, 37.527505, 0], + [126.366886, 37.518205, 0], + [126.355017, 37.5071, 0], + [126.345763, 37.494528, 0], + [126.339404, 37.480872, 0], + [126.336132, 37.466547, 0], + [126.336044, 37.451989, 0], + [126.339141, 37.43764, 0], + [126.345328, 37.423935, 0], + [126.354414, 37.411291, 0], + [126.366124, 37.400092, 0], + [126.372854, 37.395142, 0], + [126.387808, 37.386729, 0], + [126.404371, 37.380504, 0] + ] + ] + }, + "properties": { "name": "인천공항", "description": "인천공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.79345, 37.6385, 0], + [126.77514, 37.637024, 0], + [126.766178, 37.635344, 0], + [126.748978, 37.630161, 0], + [126.733178, 37.62269, 0], + [126.719261, 37.613158, 0], + [126.713142, 37.607708, 0], + [126.702819, 37.595645, 0], + [126.698692, 37.589125, 0], + [126.692664, 37.575357, 0], + [126.689747, 37.560968, 0], + [126.690026, 37.546395, 0], + [126.693492, 37.532083, 0], + [126.700038, 37.518465, 0], + [126.709462, 37.505955, 0], + [126.721479, 37.494932, 0], + [126.735722, 37.48573, 0], + [126.75176, 37.478628, 0], + [126.769106, 37.473842, 0], + [126.787233, 37.471517, 0], + [126.805594, 37.471722, 0], + [126.832359, 37.47674, 0], + [126.848897, 37.483078, 0], + [126.863799, 37.491597, 0], + [126.876614, 37.502038, 0], + [126.886953, 37.514085, 0], + [126.891091, 37.520598, 0], + [126.897151, 37.534356, 0], + [126.899025, 37.541497, 0], + [126.90039, 37.556031, 0], + [126.89855, 37.570531, 0], + [126.89356, 37.584558, 0], + [126.88841, 37.596626, 0], + [126.874821, 37.609512, 0], + [126.86164, 37.619679, 0], + [126.846427, 37.627877, 0], + [126.829644, 37.633856, 0], + [126.811804, 37.637433, 0], + [126.79345, 37.6385, 0] + ] + ] + }, + "properties": { "name": "김포공항", "description": "김포공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.568598160228, 38.0205107614195, 0], + [128.573821, 38.012733, 0], + [128.58518, 38.001227, 0], + [128.598898, 37.991447, 0], + [128.614559, 37.983692, 0], + [128.631689, 37.978195, 0], + [128.649767, 37.975124, 0], + [128.668247, 37.974571, 0], + [128.682992, 37.976167, 0], + [128.686568, 37.976554, 0], + [128.704176, 37.981011, 0], + [128.720537, 37.987809, 0], + [128.735156, 37.99674, 0], + [128.747588, 38.007536, 0], + [128.757456, 38.019867, 0], + [128.764459, 38.03336, 0], + [128.768383, 38.047607, 0], + [128.769106, 38.062173, 0], + [128.764166, 38.083656, 0], + [128.756998, 38.097098, 0], + [128.746971, 38.109355, 0], + [128.734387, 38.120055, 0], + [128.71963, 38.128871, 0], + [128.711574, 38.132487, 0], + [128.694414, 38.137994, 0], + [128.676297, 38.141072, 0], + [128.657775, 38.141625, 0], + [128.639414, 38.139638, 0], + [128.621771, 38.13517, 0], + [128.605386, 38.128359, 0], + [128.590758, 38.11941, 0], + [128.57833, 38.108598, 0], + [128.568481, 38.096252, 0], + [128.561509, 38.082746, 0], + [128.557624, 38.068493, 0], + [128.556944, 38.053925, 0], + [128.559485, 38.039486, 0], + [128.565171, 38.025613, 0], + [128.568598, 38.020511, 0], + [128.568598160228, 38.0205107614195, 0] + ] + ] + }, + "properties": { "name": "양양국제공항", "description": "양양국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.514126, 33.591465, 0], + [126.496804, 33.593516, 0], + [126.479317, 33.593028, 0], + [126.462199, 33.590016, 0], + [126.44597, 33.584571, 0], + [126.431126, 33.57686, 0], + [126.418117, 33.567116, 0], + [126.412427, 33.561573, 0], + [126.402893, 33.549355, 0], + [126.396051, 33.535943, 0], + [126.393708, 33.528915, 0], + [126.391267, 33.514483, 0], + [126.391868, 33.499918, 0], + [126.395493, 33.48566, 0], + [126.40203, 33.472144, 0], + [126.411278, 33.45978, 0], + [126.422957, 33.448942, 0], + [126.436712, 33.439959, 0], + [126.452124, 33.433104, 0], + [126.468727, 33.428584, 0], + [126.486017, 33.426537, 0], + [126.50347, 33.427024, 0], + [126.520558, 33.430031, 0], + [126.536762, 33.435466, 0], + [126.551591, 33.443165, 0], + [126.564596, 33.452895, 0], + [126.57538, 33.464358, 0], + [126.583619, 33.477211, 0], + [126.590673, 33.49823, 0], + [126.59163, 33.512782, 0], + [126.589541, 33.527252, 0], + [126.580858, 33.547844, 0], + [126.571625, 33.560221, 0], + [126.559949, 33.571074, 0], + [126.546187, 33.58007, 0], + [126.530756, 33.586937, 0], + [126.514126, 33.591465, 0] + ] + ] + }, + "properties": { "name": "제주국제공항", "description": "제주국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.516348, 36.797451, 0], + [127.498228, 36.798888, 0], + [127.480073, 36.797782, 0], + [127.462434, 36.794165, 0], + [127.44585, 36.788147, 0], + [127.430826, 36.779914, 0], + [127.417819, 36.769714, 0], + [127.412198, 36.763972, 0], + [127.402935, 36.751421, 0], + [127.396535, 36.737773, 0], + [127.394472, 36.730665, 0], + [127.392701, 36.716154, 0], + [127.394099, 36.701617, 0], + [127.398624, 36.687496, 0], + [127.406136, 36.674218, 0], + [127.416403, 36.662191, 0], + [127.429117, 36.651772, 0], + [127.44389, 36.643281, 0], + [127.464752, 36.634264, 0], + [127.486772, 36.632011, 0], + [127.50494, 36.631845, 0], + [127.522868, 36.634211, 0], + [127.531573, 36.636323, 0], + [127.548131, 36.642328, 0], + [127.563141, 36.650547, 0], + [127.576147, 36.660731, 0], + [127.586755, 36.672571, 0], + [127.594641, 36.685708, 0], + [127.600708, 36.703109, 0], + [127.601377, 36.714251, 0], + [127.600017, 36.728791, 0], + [127.595527, 36.74292, 0], + [127.588042, 36.756209, 0], + [127.577787, 36.768255, 0], + [127.565073, 36.778689, 0], + [127.550287, 36.787195, 0], + [127.533879, 36.793513, 0], + [127.516348, 36.797451, 0] + ] + ] + }, + "properties": { "name": "청주국제공항", "description": "청주국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.403553, 34.90975, 0], + [126.412208, 34.911543, 0], + [126.423111, 34.914652, 0], + [126.432381, 34.918593, 0], + [126.440964, 34.923378, 0], + [126.45089, 34.92924, 0], + [126.457297, 34.934339, 0], + [126.463138, 34.939875, 0], + [126.468369, 34.945808, 0], + [126.47295, 34.952091, 0], + [126.476846, 34.958678, 0], + [126.480027, 34.965518, 0], + [126.48247, 34.972559, 0], + [126.484154, 34.979747, 0], + [126.485068, 34.987029, 0], + [126.485204, 34.994348, 0], + [126.483879, 35.00441, 0], + [126.482506, 35.013127, 0], + [126.479759, 35.020718, 0], + [126.475983, 35.027466, 0], + [126.472893, 35.03337, 0], + [126.467056, 35.040116, 0], + [126.459362, 35.047699, 0], + [126.453134, 35.052952, 0], + [126.44637, 35.057739, 0], + [126.439121, 35.062026, 0], + [126.431443, 35.065779, 0], + [126.423394, 35.068969, 0], + [126.415035, 35.071572, 0], + [126.40643, 35.073569, 0], + [126.397645, 35.074943, 0], + [126.390839, 35.076089, 0], + [126.379803, 35.075789, 0], + [126.370883, 35.075254, 0], + [126.362054, 35.074084, 0], + [126.353383, 35.072288, 0], + [126.344937, 35.069879, 0], + [126.33419, 35.066535, 0], + [126.325607, 35.062039, 0], + [126.319427, 35.058105, 0], + [126.314654, 35.054559, 0], + [126.308247, 35.049453, 0], + [126.302408, 35.043909, 0], + [126.297183, 35.037969, 0], + [126.292611, 35.031679, 0], + [126.288726, 35.025087, 0], + [126.285558, 35.018242, 0], + [126.283132, 35.011197, 0], + [126.281464, 35.004006, 0], + [126.280568, 34.996722, 0], + [126.280451, 34.989403, 0], + [126.281113, 34.982103, 0], + [126.282548, 34.974879, 0], + [126.284746, 34.967784, 0], + [126.28769, 34.960873, 0], + [126.291357, 34.954198, 0], + [126.296768, 34.945614, 0], + [126.303291, 34.939422, 0], + [126.309471, 34.932667, 0], + [126.319381, 34.926064, 0], + [126.326624, 34.921785, 0], + [126.334294, 34.918039, 0], + [126.342332, 34.914855, 0], + [126.350677, 34.912257, 0], + [126.361656, 34.909302, 0], + [126.371612, 34.907895, 0], + [126.380539, 34.907332, 0], + [126.390495, 34.907613, 0], + [126.398392, 34.908176, 0], + [126.403553, 34.90975, 0] + ] + ] + }, + "properties": { "name": "무안국제공항", "description": "무안국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.812885, 35.042949, 0], + [126.826172, 35.04349, 0], + [126.839261, 35.046583, 0], + [126.847685, 35.049031, 0], + [126.855817, 35.05207, 0], + [126.863595, 35.055677, 0], + [126.87096, 35.059825, 0], + [126.877857, 35.064482, 0], + [126.884231, 35.069613, 0], + [126.890036, 35.075179, 0], + [126.895227, 35.081138, 0], + [126.899765, 35.087444, 0], + [126.903614, 35.094049, 0], + [126.906745, 35.100904, 0], + [126.909135, 35.107956, 0], + [126.910629, 35.113449, 0], + [126.911316, 35.119347, 0], + [126.911659, 35.125244, 0], + [126.911699, 35.129753, 0], + [126.910997, 35.137049, 0], + [126.909943, 35.142371, 0], + [126.908226, 35.148828, 0], + [126.906166, 35.154161, 0], + [126.903076, 35.160056, 0], + [126.900576, 35.164908, 0], + [126.896167, 35.171276, 0], + [126.891094, 35.177306, 0], + [126.885397, 35.182952, 0], + [126.879119, 35.188169, 0], + [126.872308, 35.19292, 0], + [126.865015, 35.197166, 0], + [126.853981, 35.202428, 0], + [126.846428, 35.205233, 0], + [126.840819, 35.206581, 0], + [126.832187, 35.208531, 0], + [126.823379, 35.209858, 0], + [126.814462, 35.210553, 0], + [126.803169, 35.210563, 0], + [126.796579, 35.210026, 0], + [126.787747, 35.208809, 0], + [126.779079, 35.206968, 0], + [126.770641, 35.204515, 0], + [126.762497, 35.201471, 0], + [126.754709, 35.197857, 0], + [126.747338, 35.193702, 0], + [126.740438, 35.189038, 0], + [126.734063, 35.183899, 0], + [126.728261, 35.178326, 0], + [126.723076, 35.17236, 0], + [126.718547, 35.166047, 0], + [126.71471, 35.159436, 0], + [126.711592, 35.152576, 0], + [126.709218, 35.14552, 0], + [126.707605, 35.138322, 0], + [126.706766, 35.131037, 0], + [126.706707, 35.123719, 0], + [126.707428, 35.116425, 0], + [126.708923, 35.10921, 0], + [126.71118, 35.102129, 0], + [126.714183, 35.095235, 0], + [126.717908, 35.088582, 0], + [126.722327, 35.08222, 0], + [126.727406, 35.076197, 0], + [126.733107, 35.070559, 0], + [126.739385, 35.065349, 0], + [126.746193, 35.060606, 0], + [126.75348, 35.056366, 0], + [126.76119, 35.052662, 0], + [126.769264, 35.049522, 0], + [126.777641, 35.046969, 0], + [126.783943, 35.045457, 0], + [126.795049, 35.043698, 0], + [126.803947, 35.043005, 0], + [126.812885, 35.042949, 0] + ] + ] + }, + "properties": { "name": "광주공항", "description": "광주공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.622837, 35.987045, 0], + [126.613799, 35.987213, 0], + [126.595842, 35.985636, 0], + [126.578498, 35.981558, 0], + [126.562295, 35.975102, 0], + [126.547726, 35.966465, 0], + [126.539841, 35.958, 0], + [126.529891, 35.950013, 0], + [126.521205, 35.937201, 0], + [126.515402, 35.923361, 0], + [126.512656, 35.908916, 0], + [126.513048, 35.894305, 0], + [126.515808, 35.883487, 0], + [126.519468, 35.873043, 0], + [126.527442, 35.859934, 0], + [126.538101, 35.848146, 0], + [126.546707, 35.838968, 0], + [126.558394, 35.833707, 0], + [126.574193, 35.82667, 0], + [126.591257, 35.821962, 0], + [126.60907, 35.819725, 0], + [126.618088, 35.819558, 0], + [126.636008, 35.821131, 0], + [126.65332, 35.825201, 0], + [126.6695, 35.831645, 0], + [126.67701, 35.835698, 0], + [126.690586, 35.845315, 0], + [126.701899, 35.856696, 0], + [126.710606, 35.869495, 0], + [126.716439, 35.883325, 0], + [126.719222, 35.897765, 0], + [126.718867, 35.912378, 0], + [126.715384, 35.926718, 0], + [126.708877, 35.940351, 0], + [126.699542, 35.952861, 0], + [126.687663, 35.963867, 0], + [126.673599, 35.973036, 0], + [126.65778, 35.980086, 0], + [126.64936, 35.982747, 0], + [126.640685, 35.984804, 0], + [126.622837, 35.987045, 0] + ] + ] + }, + "properties": { "name": "군산공항", "description": "군산공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.584572, 34.921971, 0], + [127.578958, 34.920043, 0], + [127.570842, 34.917006, 0], + [127.563081, 34.913401, 0], + [127.555733, 34.909254, 0], + [127.548855, 34.904597, 0], + [127.542499, 34.899466, 0], + [127.536713, 34.8939, 0], + [127.531541, 34.887941, 0], + [127.527022, 34.881635, 0], + [127.523192, 34.87503, 0], + [127.520078, 34.868176, 0], + [127.517705, 34.861125, 0], + [127.51609, 34.853932, 0], + [127.515246, 34.84665, 0], + [127.515178, 34.839336, 0], + [127.515887, 34.832044, 0], + [127.517367, 34.824831, 0], + [127.519607, 34.817752, 0], + [127.52259, 34.810859, 0], + [127.526292, 34.804206, 0], + [127.530686, 34.797843, 0], + [127.535738, 34.791819, 0], + [127.541409, 34.786179, 0], + [127.547657, 34.780966, 0], + [127.554433, 34.77622, 0], + [127.561686, 34.771976, 0], + [127.569361, 34.768267, 0], + [127.5774, 34.765122, 0], + [127.588005, 34.761076, 0], + [127.597618, 34.759384, 0], + [127.607574, 34.758538, 0], + [127.616844, 34.757692, 0], + [127.627487, 34.757974, 0], + [127.638499, 34.760298, 0], + [127.64712, 34.762128, 0], + [127.655514, 34.764568, 0], + [127.663617, 34.767599, 0], + [127.671369, 34.771198, 0], + [127.681046, 34.77546, 0], + [127.685585, 34.779988, 0], + [127.691941, 34.785111, 0], + [127.69773, 34.79067, 0], + [127.702908, 34.796622, 0], + [127.707435, 34.802921, 0], + [127.711277, 34.809521, 0], + [127.714404, 34.81637, 0], + [127.716793, 34.823417, 0], + [127.718424, 34.830608, 0], + [127.719287, 34.837888, 0], + [127.719373, 34.845202, 0], + [127.718682, 34.852495, 0], + [127.717219, 34.85971, 0], + [127.714994, 34.866793, 0], + [127.712026, 34.873691, 0], + [127.708335, 34.880349, 0], + [127.70395, 34.886718, 0], + [127.698905, 34.89275, 0], + [127.691002, 34.900856, 0], + [127.684135, 34.905361, 0], + [127.676926, 34.910429, 0], + [127.668343, 34.914652, 0], + [127.657218, 34.919488, 0], + [127.648863, 34.922052, 0], + [127.63813, 34.923941, 0], + [127.627144, 34.92563, 0], + [127.613694, 34.926106, 0], + [127.6048, 34.925531, 0], + [127.596002, 34.924322, 0], + [127.584572, 34.921971, 0] + ] + ] + }, + "properties": { "name": "여수공항", "description": "여수공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.93158, 35.098362, 0], + [128.940492, 35.098235, 0], + [128.954086, 35.099125, 0], + [128.966834, 35.101647, 0], + [128.978806, 35.105305, 0], + [128.988762, 35.109237, 0], + [128.998598, 35.11459, 0], + [129.005529, 35.119176, 0], + [129.011946, 35.124238, 0], + [129.0178, 35.129738, 0], + [129.023046, 35.135634, 0], + [129.027645, 35.141881, 0], + [129.031561, 35.148433, 0], + [129.034765, 35.155238, 0], + [129.037231, 35.162246, 0], + [129.038941, 35.169402, 0], + [129.039882, 35.176654, 0], + [129.040046, 35.183945, 0], + [129.039433, 35.191219, 0], + [129.038045, 35.198423, 0], + [129.035894, 35.2055, 0], + [129.032996, 35.212397, 0], + [129.029373, 35.219061, 0], + [129.025052, 35.225442, 0], + [129.020066, 35.23149, 0], + [129.014452, 35.237161, 0], + [129.008255, 35.242409, 0], + [129.00152, 35.247197, 0], + [128.994299, 35.251486, 0], + [128.986646, 35.255245, 0], + [128.978622, 35.258444, 0], + [128.970285, 35.261059, 0], + [128.961701, 35.26307, 0], + [128.952935, 35.264463, 0], + [128.944053, 35.265225, 0], + [128.935123, 35.265352, 0], + [128.926214, 35.264842, 0], + [128.914948, 35.263282, 0], + [128.904648, 35.260759, 0], + [128.892129, 35.256588, 0], + [128.884322, 35.253049, 0], + [128.876922, 35.248967, 0], + [128.869987, 35.244374, 0], + [128.861046, 35.237488, 0], + [128.854866, 35.231598, 0], + [128.850059, 35.224868, 0], + [128.84491, 35.217295, 0], + [128.841133, 35.210283, 0], + [128.838341, 35.20126, 0], + [128.836648, 35.194101, 0], + [128.835297, 35.184191, 0], + [128.83564, 35.176334, 0], + [128.837013, 35.166792, 0], + [128.839783, 35.158009, 0], + [128.842696, 35.151116, 0], + [128.846331, 35.144458, 0], + [128.850662, 35.138083, 0], + [128.855655, 35.132042, 0], + [128.861272, 35.126379, 0], + [128.867471, 35.121137, 0], + [128.874203, 35.116357, 0], + [128.881419, 35.112075, 0], + [128.889062, 35.108323, 0], + [128.897076, 35.10513, 0], + [128.905398, 35.10252, 0], + [128.913967, 35.100512, 0], + [128.922716, 35.099123, 0], + [128.93158, 35.098362, 0] + ] + ] + }, + "properties": { "name": "김해국제공항", "description": "김해국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.325885, 35.512544, 0], + [129.334653, 35.510984, 0], + [129.343554, 35.510052, 0], + [129.352522, 35.509754, 0], + [129.361487, 35.510092, 0], + [129.370382, 35.511065, 0], + [129.379139, 35.512664, 0], + [129.387692, 35.514878, 0], + [129.395976, 35.51769, 0], + [129.403928, 35.521078, 0], + [129.411488, 35.525017, 0], + [129.420662, 35.53055, 0], + [129.428215, 35.535858, 0], + [129.434395, 35.542284, 0], + [129.440575, 35.549547, 0], + [129.445038, 35.55625, 0], + [129.449071, 35.565034, 0], + [129.451757, 35.572005, 0], + [129.453686, 35.57914, 0], + [129.454843, 35.586385, 0], + [129.455219, 35.593684, 0], + [129.454812, 35.600982, 0], + [129.453623, 35.608224, 0], + [129.451663, 35.615353, 0], + [129.448945, 35.622317, 0], + [129.445491, 35.629061, 0], + [129.441326, 35.635535, 0], + [129.436481, 35.641689, 0], + [129.430995, 35.647476, 0], + [129.424908, 35.652853, 0], + [129.418266, 35.657777, 0], + [129.411121, 35.662212, 0], + [129.403526, 35.666124, 0], + [129.395541, 35.669482, 0], + [129.387224, 35.672262, 0], + [129.378641, 35.674441, 0], + [129.369856, 35.676004, 0], + [129.360936, 35.676939, 0], + [129.354057, 35.6771, 0], + [129.342966, 35.676898, 0], + [129.334053, 35.675924, 0], + [129.325279, 35.674321, 0], + [129.316711, 35.672103, 0], + [129.308413, 35.669285, 0], + [129.300451, 35.665891, 0], + [129.292883, 35.661945, 0], + [129.285768, 35.657478, 0], + [129.279161, 35.652524, 0], + [129.27311, 35.64712, 0], + [129.267663, 35.641308, 0], + [129.262861, 35.635132, 0], + [129.258741, 35.628639, 0], + [129.255332, 35.62188, 0], + [129.251747, 35.61293, 0], + [129.249344, 35.602602, 0], + [129.249254, 35.593219, 0], + [129.24968, 35.585922, 0], + [129.252091, 35.574962, 0], + [129.254494, 35.566305, 0], + [129.259065, 35.557858, 0], + [129.263241, 35.55139, 0], + [129.268093, 35.545243, 0], + [129.273584, 35.539463, 0], + [129.279673, 35.534095, 0], + [129.286313, 35.529178, 0], + [129.293453, 35.52475, 0], + [129.30104, 35.520846, 0], + [129.309014, 35.517494, 0], + [129.317317, 35.51472, 0], + [129.325885, 35.512544, 0] + ] + ] + }, + "properties": { "name": "울산공항", "description": "울산공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.995872, 35.145178, 0], + [127.992525, 35.142573, 0], + [127.987124, 35.136749, 0], + [127.982365, 35.130562, 0], + [127.978283, 35.12406, 0], + [127.974911, 35.117291, 0], + [127.972273, 35.110308, 0], + [127.97039, 35.103163, 0], + [127.969275, 35.09591, 0], + [127.968938, 35.088606, 0], + [127.969379, 35.081306, 0], + [127.970596, 35.074065, 0], + [127.97258, 35.066938, 0], + [127.975314, 35.05998, 0], + [127.978778, 35.053244, 0], + [127.982946, 35.04678, 0], + [127.987785, 35.040637, 0], + [127.993259, 35.034864, 0], + [128.000679, 35.027747, 0], + [128.009949, 35.022124, 0], + [128.018189, 35.017907, 0], + [128.025398, 35.013689, 0], + [128.033981, 35.010596, 0], + [128.045328, 35.008016, 0], + [128.054049, 35.00647, 0], + [128.062902, 35.005551, 0], + [128.071819, 35.005268, 0], + [128.080732, 35.005621, 0], + [128.089574, 35.006609, 0], + [128.098277, 35.008223, 0], + [128.106776, 35.010453, 0], + [128.115006, 35.013279, 0], + [128.122904, 35.016682, 0], + [128.130411, 35.020636, 0], + [128.137469, 35.025109, 0], + [128.144025, 35.030069, 0], + [128.150029, 35.035478, 0], + [128.155436, 35.041295, 0], + [128.160203, 35.047474, 0], + [128.162384, 35.051922, 0], + [128.166847, 35.058386, 0], + [128.168907, 35.064849, 0], + [128.171654, 35.071312, 0], + [128.172684, 35.078618, 0], + [128.17337, 35.086484, 0], + [128.173298, 35.09671, 0], + [128.172098, 35.103953, 0], + [128.170132, 35.111083, 0], + [128.166161, 35.121313, 0], + [128.159803, 35.131258, 0], + [128.152084, 35.140406, 0], + [128.143437, 35.148557, 0], + [128.132172, 35.157249, 0], + [128.122145, 35.161799, 0], + [128.114197, 35.165146, 0], + [128.099899, 35.168757, 0], + [128.088644, 35.171629, 0], + [128.079773, 35.17255, 0], + [128.068314, 35.172966, 0], + [128.053047, 35.17149, 0], + [128.038788, 35.168476, 0], + [128.024025, 35.163985, 0], + [128.012148, 35.157437, 0], + [128.005085, 35.152956, 0], + [127.995872, 35.145178, 0] + ] + ] + }, + "properties": { "name": "사천공항", "description": "사천공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.58711, 35.833938, 0], + [128.593873, 35.829119, 0], + [128.597717, 35.826721, 0], + [128.60321, 35.823102, 0], + [128.611107, 35.819762, 0], + [128.616883, 35.817763, 0], + [128.625269, 35.815107, 0], + [128.633907, 35.813053, 0], + [128.642733, 35.811617, 0], + [128.651679, 35.81081, 0], + [128.665695, 35.810853, 0], + [128.675308, 35.811688, 0], + [128.68731, 35.813916, 0], + [128.695841, 35.816247, 0], + [128.704089, 35.819172, 0], + [128.711993, 35.822668, 0], + [128.719491, 35.826709, 0], + [128.726527, 35.831264, 0], + [128.733047, 35.836298, 0], + [128.739003, 35.841773, 0], + [128.744347, 35.847649, 0], + [128.749041, 35.853879, 0], + [128.753047, 35.860417, 0], + [128.756336, 35.867213, 0], + [128.758882, 35.874215, 0], + [128.760665, 35.881371, 0], + [128.761672, 35.888625, 0], + [128.761895, 35.895922, 0], + [128.761332, 35.903208, 0], + [128.759986, 35.910426, 0], + [128.757869, 35.917522, 0], + [128.754996, 35.924441, 0], + [128.751389, 35.931131, 0], + [128.747075, 35.937541, 0], + [128.742086, 35.943622, 0], + [128.736461, 35.949327, 0], + [128.730242, 35.954614, 0], + [128.723477, 35.959441, 0], + [128.716217, 35.963772, 0], + [128.708518, 35.967574, 0], + [128.700438, 35.970818, 0], + [128.692038, 35.973479, 0], + [128.683384, 35.975537, 0], + [128.674541, 35.976976, 0], + [128.665576, 35.977785, 0], + [128.656557, 35.977958, 0], + [128.644409, 35.976895, 0], + [128.629872, 35.974671, 0], + [128.618317, 35.970782, 0], + [128.60733, 35.966058, 0], + [128.60012, 35.96328, 0], + [128.590606, 35.957292, 0], + [128.584084, 35.95225, 0], + [128.578132, 35.946767, 0], + [128.572793, 35.940884, 0], + [128.568108, 35.934647, 0], + [128.564113, 35.928103, 0], + [128.560839, 35.921302, 0], + [128.558309, 35.914295, 0], + [128.556544, 35.907137, 0], + [128.555555, 35.899881, 0], + [128.555352, 35.892583, 0], + [128.556175, 35.882374, 0], + [128.558579, 35.874307, 0], + [128.562355, 35.865961, 0], + [128.56594, 35.857391, 0], + [128.570265, 35.850988, 0], + [128.575261, 35.844914, 0], + [128.58089, 35.839217, 0], + [128.58711, 35.833938, 0] + ] + ] + }, + "properties": { "name": "대구국제공항", "description": "대구국제공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [129.410019, 35.904346, 0], + [129.414943, 35.903896, 0], + [129.423966, 35.903952, 0], + [129.432949, 35.904643, 0], + [129.441823, 35.905965, 0], + [129.450522, 35.907909, 0], + [129.45898, 35.910458, 0], + [129.467131, 35.913594, 0], + [129.474915, 35.917293, 0], + [129.482272, 35.921527, 0], + [129.489145, 35.926263, 0], + [129.495484, 35.931467, 0], + [129.50124, 35.937098, 0], + [129.506368, 35.943113, 0], + [129.51083, 35.949467, 0], + [129.514591, 35.956111, 0], + [129.517624, 35.962996, 0], + [129.519904, 35.970068, 0], + [129.522286, 35.981062, 0], + [129.522286, 35.989674, 0], + [129.521237, 35.999145, 0], + [129.51961, 36.006334, 0], + [129.517214, 36.013382, 0], + [129.514068, 36.020233, 0], + [129.510194, 36.026837, 0], + [129.505623, 36.033142, 0], + [129.500389, 36.039101, 0], + [129.494532, 36.044668, 0], + [129.488096, 36.049801, 0], + [129.481131, 36.05446, 0], + [129.473689, 36.05861, 0], + [129.465827, 36.06222, 0], + [129.457608, 36.065261, 0], + [129.449089, 36.067711, 0], + [129.434052, 36.07047, 0], + [129.422408, 36.071349, 0], + [129.413366, 36.071294, 0], + [129.401436, 36.070192, 0], + [129.386756, 36.067329, 0], + [129.378284, 36.064775, 0], + [129.37012, 36.061633, 0], + [129.362327, 36.057927, 0], + [129.354964, 36.053686, 0], + [129.348087, 36.048942, 0], + [129.341749, 36.043731, 0], + [129.335997, 36.038092, 0], + [129.330875, 36.03207, 0], + [129.323845, 36.022169, 0], + [129.319656, 36.01217, 0], + [129.317322, 36.001896, 0], + [129.315948, 35.993285, 0], + [129.315605, 35.98523, 0], + [129.316134, 35.976015, 0], + [129.317779, 35.968828, 0], + [129.321098, 35.959667, 0], + [129.325218, 35.950218, 0], + [129.330025, 35.944937, 0], + [129.334488, 35.938822, 0], + [129.340668, 35.932985, 0], + [129.345818, 35.927981, 0], + [129.353027, 35.923254, 0], + [129.360924, 35.917972, 0], + [129.369164, 35.913245, 0], + [129.377747, 35.909908, 0], + [129.388315, 35.907527, 0], + [129.400749, 35.904903, 0], + [129.410019, 35.904346, 0] + ] + ] + }, + "properties": { "name": "포항공항", "description": "포항공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.938881, 37.356241, 0], + [127.94452, 37.355116, 0], + [127.953642, 37.35428, 0], + [127.962822, 37.354077, 0], + [127.971988, 37.354511, 0], + [127.981072, 37.355578, 0], + [127.990006, 37.357269, 0], + [127.99872, 37.359572, 0], + [128.007149, 37.362469, 0], + [128.015229, 37.365939, 0], + [128.025055, 37.370703, 0], + [128.033638, 37.376978, 0], + [128.040504, 37.382434, 0], + [128.048363, 37.39081, 0], + [128.056297, 37.401801, 0], + [128.060417, 37.408074, 0], + [128.063327, 37.417326, 0], + [128.066254, 37.426616, 0], + [128.066597, 37.435067, 0], + [128.06694, 37.444063, 0], + [128.064641, 37.453531, 0], + [128.060417, 37.464231, 0], + [128.055976, 37.474262, 0], + [128.051608, 37.480686, 0], + [128.04655, 37.486783, 0], + [128.04084, 37.492506, 0], + [128.034523, 37.497813, 0], + [128.027646, 37.502662, 0], + [128.017845, 37.507547, 0], + [128.012426, 37.510843, 0], + [128.004199, 37.514113, 0], + [127.995643, 37.516802, 0], + [127.98317, 37.519257, 0], + [127.972183, 37.520619, 0], + [127.959467, 37.521396, 0], + [127.95028, 37.520961, 0], + [127.935791, 37.518712, 0], + [127.923494, 37.515888, 0], + [127.915051, 37.512985, 0], + [127.90696, 37.509508, 0], + [127.899282, 37.505485, 0], + [127.892077, 37.500945, 0], + [127.885399, 37.495925, 0], + [127.879305, 37.490467, 0], + [127.873828, 37.484603, 0], + [127.869016, 37.478381, 0], + [127.864908, 37.471851, 0], + [127.858916, 37.458063, 0], + [127.85614, 37.445971, 0], + [127.855788, 37.436362, 0], + [127.856345, 37.429076, 0], + [127.857699, 37.421857, 0], + [127.85984, 37.414758, 0], + [127.862752, 37.407835, 0], + [127.866411, 37.401139, 0], + [127.872276, 37.392528, 0], + [127.877083, 37.386526, 0], + [127.883263, 37.38107, 0], + [127.891159, 37.375341, 0], + [127.899742, 37.369884, 0], + [127.909967, 37.36461, 0], + [127.918182, 37.361346, 0], + [127.926722, 37.358663, 0], + [127.938881, 37.356241, 0] + ] + ] + }, + "properties": { "name": "원주공항", "description": "원주공항 반경 9.3Km 관제권", "type": "0003" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.914923, 37.834493, 0], + [128.898113, 37.828434, 0], + [128.882895, 37.82016, 0], + [128.86973, 37.809923, 0], + [128.864046, 37.804163, 0], + [128.854688, 37.791581, 0], + [128.848241, 37.777906, 0], + [128.844898, 37.763554, 0], + [128.844758, 37.748961, 0], + [128.847826, 37.734571, 0], + [128.854004, 37.72082, 0], + [128.863105, 37.708126, 0], + [128.87485, 37.696874, 0], + [128.888883, 37.687405, 0], + [128.904778, 37.680006, 0], + [128.922051, 37.674901, 0], + [128.940181, 37.672246, 0], + [128.958618, 37.672119, 0], + [128.976803, 37.674526, 0], + [128.994185, 37.679393, 0], + [129.010239, 37.686573, 0], + [129.024477, 37.695848, 0], + [129.036467, 37.706937, 0], + [129.041502, 37.713059, 0], + [129.049461, 37.726225, 0], + [129.054336, 37.736512, 0], + [129.055705, 37.747515, 0], + [129.055886, 37.762108, 0], + [129.052858, 37.776504, 0], + [129.046712, 37.790265, 0], + [129.037633, 37.802973, 0], + [129.032076, 37.80881, 0], + [129.019138, 37.819226, 0], + [129.011856, 37.823726, 0], + [128.995941, 37.83114, 0], + [128.978636, 37.836255, 0], + [128.969626, 37.837899, 0], + [128.951232, 37.839299, 0], + [128.932811, 37.838152, 0], + [128.914923, 37.834493, 0] + ] + ] + }, + "properties": { "name": "강릉비행장(공군)", "description": "강릉비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.044856, 37.50983, 0], + [127.032079, 37.49931, 0], + [127.025986, 37.490115, 0], + [127.017702, 37.48064, 0], + [127.011733, 37.466821, 0], + [127.00991, 37.459654, 0], + [127.008653, 37.445079, 0], + [127.009229, 37.437782, 0], + [127.012765, 37.423445, 0], + [127.015698, 37.416515, 0], + [127.023783, 37.403393, 0], + [127.034611, 37.391585, 0], + [127.040953, 37.386287, 0], + [127.055253, 37.377105, 0], + [127.063102, 37.373291, 0], + [127.079901, 37.36736, 0], + [127.097739, 37.363834, 0], + [127.10688, 37.36301, 0], + [127.125258, 37.36327, 0], + [127.1433, 37.366059, 0], + [127.152025, 37.368379, 0], + [127.166061, 37.370703, 0], + [127.176222, 37.378815, 0], + [127.190102, 37.388396, 0], + [127.196203, 37.393869, 0], + [127.206495, 37.405976, 0], + [127.210608, 37.412517, 0], + [127.216608, 37.426327, 0], + [127.218451, 37.433491, 0], + [127.219748, 37.448063, 0], + [127.219193, 37.455361, 0], + [127.215694, 37.469704, 0], + [127.212777, 37.476639, 0], + [127.209109, 37.483346, 0], + [127.204514, 37.493928, 0], + [127.193903, 37.501598, 0], + [127.180661, 37.51175, 0], + [127.173253, 37.516101, 0], + [127.157145, 37.523186, 0], + [127.13973, 37.527942, 0], + [127.121535, 37.530225, 0], + [127.103116, 37.529965, 0], + [127.085035, 37.527169, 0], + [127.067843, 37.521924, 0], + [127.052064, 37.514388, 0], + [127.044856, 37.50983, 0] + ] + ] + }, + "properties": { "name": "서울(성남)공항(공군)", "description": "서울(성남)공항(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.944218, 37.308626, 0], + [126.930697, 37.298778, 0], + [126.924799, 37.293188, 0], + [126.914948, 37.28089, 0], + [126.911071, 37.274276, 0], + [126.90556, 37.260368, 0], + [126.903168, 37.24591, 0], + [126.903967, 37.231341, 0], + [126.905559, 37.224154, 0], + [126.911065, 37.210246, 0], + [126.919517, 37.19731, 0], + [126.924771, 37.19133, 0], + [126.937133, 37.180576, 0], + [126.944148, 37.175883, 0], + [126.959578, 37.168041, 0], + [126.97648, 37.162451, 0], + [126.994342, 37.159283, 0], + [127.012621, 37.158632, 0], + [127.021745, 37.159259, 0], + [127.034912, 37.161958, 0], + [127.048226, 37.164883, 0], + [127.064472, 37.171596, 0], + [127.071984, 37.175772, 0], + [127.079012, 37.180453, 0], + [127.091404, 37.191186, 0], + [127.101271, 37.203469, 0], + [127.108314, 37.21693, 0], + [127.112316, 37.23116, 0], + [127.113156, 37.245728, 0], + [127.110804, 37.26019, 0], + [127.106323, 37.270774, 0], + [127.096902, 37.287056, 0], + [127.091655, 37.293043, 0], + [127.079298, 37.303812, 0], + [127.064772, 37.31271, 0], + [127.048521, 37.319465, 0], + [127.03104, 37.32387, 0], + [127.012862, 37.325791, 0], + [127.003684, 37.325799, 0], + [126.9855, 37.32391, 0], + [126.968007, 37.319535, 0], + [126.959687, 37.316455, 0], + [126.944218, 37.308626, 0] + ] + ] + }, + "properties": { "name": "수원비행장(공군)", "description": "수원비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.975488, 37.162112, 0], + [126.96068, 37.153499, 0], + [126.95404, 37.148453, 0], + [126.94254, 37.137077, 0], + [126.937766, 37.130833, 0], + [126.930356, 37.117471, 0], + [126.927774, 37.110454, 0], + [126.924956, 37.096018, 0], + [126.925323, 37.08141, 0], + [126.928864, 37.067075, 0], + [126.931794, 37.060147, 0], + [126.939861, 37.047031, 0], + [126.950655, 37.035232, 0], + [126.956976, 37.02994, 0], + [126.96385, 37.025107, 0], + [126.979042, 37.016963, 0], + [126.999893, 37.009681, 0], + [127.017746, 37.006391, 0], + [127.031787, 37.006541, 0], + [127.04998, 37.008089, 0], + [127.058881, 37.009805, 0], + [127.075956, 37.015056, 0], + [127.091632, 37.022593, 0], + [127.098795, 37.02715, 0], + [127.111499, 37.037667, 0], + [127.121726, 37.049785, 0], + [127.129164, 37.063135, 0], + [127.133585, 37.077313, 0], + [127.135849, 37.088049, 0], + [127.134292, 37.099187, 0], + [127.130788, 37.113528, 0], + [127.124213, 37.127165, 0], + [127.114765, 37.139685, 0], + [127.10905, 37.145404, 0], + [127.095854, 37.155545, 0], + [127.080647, 37.163704, 0], + [127.072431, 37.16696, 0], + [127.055088, 37.171701, 0], + [127.036974, 37.173967, 0], + [127.018641, 37.173689, 0], + [127.000648, 37.170877, 0], + [126.983543, 37.165614, 0], + [126.975488, 37.162112, 0] + ] + ] + }, + "properties": { "name": "오산비행장(주한미군)", "description": "오산비행장(주한미군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.019297, 37.041721, 0], + [127.001527, 37.038427, 0], + [126.984746, 37.032718, 0], + [126.962535, 37.020025, 0], + [126.950357, 37.009186, 0], + [126.940725, 36.996822, 0], + [126.93393, 36.98331, 0], + [126.929481, 36.961794, 0], + [126.930473, 36.947255, 0], + [126.934609, 36.933073, 0], + [126.94176, 36.919681, 0], + [126.951709, 36.907484, 0], + [126.95764, 36.901951, 0], + [126.971193, 36.892227, 0], + [126.986648, 36.88453, 0], + [127.003537, 36.879095, 0], + [127.021347, 36.876085, 0], + [127.03954, 36.875592, 0], + [127.061691, 36.878522, 0], + [127.074873, 36.882141, 0], + [127.090943, 36.888984, 0], + [127.09836, 36.893218, 0], + [127.111673, 36.903152, 0], + [127.117469, 36.908776, 0], + [127.127118, 36.921125, 0], + [127.130898, 36.927757, 0], + [127.136225, 36.941682, 0], + [127.138446, 36.956135, 0], + [127.137494, 36.970676, 0], + [127.134476, 36.981164, 0], + [127.12627, 36.998268, 0], + [127.116339, 37.010479, 0], + [127.108383, 37.020098, 0], + [127.096853, 37.02576, 0], + [127.081381, 37.033471, 0], + [127.073071, 37.036489, 0], + [127.055623, 37.040737, 0], + [127.037514, 37.042498, 0], + [127.019297, 37.041721, 0] + ] + ] + }, + "properties": { "name": "평택비행장(주한미군)", "description": "평택비행장(주한미군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.805046, 36.976962, 0], + [127.811154, 36.971526, 0], + [127.817831, 36.966536, 0], + [127.825025, 36.962029, 0], + [127.832683, 36.95804, 0], + [127.840747, 36.954598, 0], + [127.849154, 36.951731, 0], + [127.857841, 36.94946, 0], + [127.866743, 36.947802, 0], + [127.875792, 36.946769, 0], + [127.884918, 36.94637, 0], + [127.894053, 36.946608, 0], + [127.903128, 36.94748, 0], + [127.912073, 36.94898, 0], + [127.920822, 36.951097, 0], + [127.932014, 36.95483, 0], + [127.940941, 36.958946, 0], + [127.949524, 36.96306, 0], + [127.956047, 36.967724, 0], + [127.963257, 36.972935, 0], + [127.96978, 36.978147, 0], + [127.974587, 36.983358, 0], + [127.979365, 36.990138, 0], + [127.984197, 37.000549, 0], + [127.989349, 37.011052, 0], + [127.990446, 37.02183, 0], + [127.991066, 37.030788, 0], + [127.990668, 37.036425, 0], + [127.989349, 37.047231, 0], + [127.985066, 37.057821, 0], + [127.981665, 37.064603, 0], + [127.977536, 37.071123, 0], + [127.97271, 37.07733, 0], + [127.967223, 37.083178, 0], + [127.961118, 37.088622, 0], + [127.95444, 37.09362, 0], + [127.947244, 37.098133, 0], + [127.939578, 37.102129, 0], + [127.931503, 37.105577, 0], + [127.923082, 37.10845, 0], + [127.914379, 37.110727, 0], + [127.905459, 37.112388, 0], + [127.896391, 37.113423, 0], + [127.887245, 37.113823, 0], + [127.878089, 37.113586, 0], + [127.868995, 37.112712, 0], + [127.860031, 37.111208, 0], + [127.851266, 37.109087, 0], + [127.842767, 37.106364, 0], + [127.834598, 37.10306, 0], + [127.826823, 37.0992, 0], + [127.815971, 37.092978, 0], + [127.808075, 37.086406, 0], + [127.80078, 37.078851, 0], + [127.795783, 37.072731, 0], + [127.791473, 37.066286, 0], + [127.787885, 37.059566, 0], + [127.785045, 37.052621, 0], + [127.782975, 37.045506, 0], + [127.781689, 37.038274, 0], + [127.781199, 37.030979, 0], + [127.781982, 37.021469, 0], + [127.783356, 37.011874, 0], + [127.787164, 37.002292, 0], + [127.791939, 36.993504, 0], + [127.794719, 36.989003, 0], + [127.799554, 36.982802, 0], + [127.803612, 36.978695, 0], + [127.805046, 36.976962, 0] + ] + ] + }, + "properties": { "name": "중원비행장(공군)", "description": "중원비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.473217, 36.788517, 0], + [126.455432, 36.785285, 0], + [126.446872, 36.78275, 0], + [126.430741, 36.775939, 0], + [126.416336, 36.766986, 0], + [126.404094, 36.756164, 0], + [126.398903, 36.750153, 0], + [126.390578, 36.73716, 0], + [126.385198, 36.723206, 0], + [126.382599, 36.712467, 0], + [126.382977, 36.701406, 0], + [126.385459, 36.686937, 0], + [126.391034, 36.673033, 0], + [126.394932, 36.666426, 0], + [126.404801, 36.654153, 0], + [126.414871, 36.647487, 0], + [126.424182, 36.638771, 0], + [126.439584, 36.630988, 0], + [126.456433, 36.625468, 0], + [126.474219, 36.622377, 0], + [126.483295, 36.621775, 0], + [126.501471, 36.62248, 0], + [126.51922, 36.625704, 0], + [126.536004, 36.631351, 0], + [126.551314, 36.639249, 0], + [126.564686, 36.649159, 0], + [126.575713, 36.66078, 0], + [126.58406, 36.67376, 0], + [126.589473, 36.687705, 0], + [126.591785, 36.702192, 0], + [126.590925, 36.716781, 0], + [126.586916, 36.731028, 0], + [126.57988, 36.744501, 0], + [126.570028, 36.756789, 0], + [126.557659, 36.767518, 0], + [126.543149, 36.776362, 0], + [126.526939, 36.783052, 0], + [126.509524, 36.787382, 0], + [126.491433, 36.789223, 0], + [126.473217, 36.788517, 0] + ] + ] + }, + "properties": { "name": "서산비행장(공군)", "description": "서산비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.281662, 36.511568, 0], + [126.288528, 36.510464, 0], + [126.29527, 36.510817, 0], + [126.309471, 36.511016, 0], + [126.320114, 36.512948, 0], + [126.33089, 36.515592, 0], + [126.335907, 36.517086, 0], + [126.34739, 36.521622, 0], + [126.355088, 36.52548, 0], + [126.364403, 36.531433, 0], + [126.369088, 36.534734, 0], + [126.375284, 36.54006, 0], + [126.383286, 36.548535, 0], + [126.389122, 36.556257, 0], + [126.394958, 36.567839, 0], + [126.398533, 36.57908, 0], + [126.400108, 36.591274, 0], + [126.400108, 36.604504, 0], + [126.397024, 36.615235, 0], + [126.394381, 36.62221, 0], + [126.390989, 36.628974, 0], + [126.386875, 36.635474, 0], + [126.378822, 36.645834, 0], + [126.370539, 36.652913, 0], + [126.362, 36.659882, 0], + [126.35273, 36.664839, 0], + [126.343803, 36.66897, 0], + [126.33274, 36.672644, 0], + [126.324097, 36.674902, 0], + [126.315241, 36.676546, 0], + [126.30624, 36.677564, 0], + [126.293335, 36.678057, 0], + [126.283379, 36.676955, 0], + [126.270163, 36.675295, 0], + [126.26147, 36.673164, 0], + [126.253042, 36.670433, 0], + [126.244944, 36.667122, 0], + [126.237238, 36.663257, 0], + [126.229981, 36.658868, 0], + [126.22323, 36.653988, 0], + [126.217035, 36.648654, 0], + [126.211444, 36.642906, 0], + [126.2065, 36.63679, 0], + [126.20224, 36.630351, 0], + [126.197548, 36.621314, 0], + [126.195145, 36.614425, 0], + [126.193085, 36.606433, 0], + [126.192055, 36.597062, 0], + [126.192454, 36.587811, 0], + [126.193567, 36.580576, 0], + [126.195461, 36.573446, 0], + [126.198121, 36.566475, 0], + [126.201527, 36.559717, 0], + [126.205652, 36.553223, 0], + [126.210465, 36.547043, 0], + [126.21593, 36.541223, 0], + [126.222005, 36.535807, 0], + [126.228643, 36.530837, 0], + [126.235794, 36.52635, 0], + [126.243404, 36.522381, 0], + [126.251414, 36.518959, 0], + [126.259765, 36.516111, 0], + [126.268392, 36.513858, 0], + [126.281662, 36.511568, 0] + ] + ] + }, + "properties": { "name": "한서비행장(민간사설)", "description": "한서비행장(민간사설) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.488442, 36.486453, 0], + [127.494488, 36.485928, 0], + [127.503562, 36.485856, 0], + [127.515564, 36.486453, 0], + [127.527237, 36.488661, 0], + [127.538906, 36.491855, 0], + [127.547169, 36.49487, 0], + [127.555075, 36.498451, 0], + [127.562563, 36.502573, 0], + [127.569577, 36.507203, 0], + [127.576063, 36.512306, 0], + [127.581971, 36.517844, 0], + [127.587258, 36.523775, 0], + [127.591882, 36.530053, 0], + [127.597618, 36.54026, 0], + [127.601452, 36.550484, 0], + [127.603455, 36.559842, 0], + [127.604485, 36.568115, 0], + [127.603424, 36.579483, 0], + [127.601395, 36.590171, 0], + [127.596674, 36.600629, 0], + [127.590065, 36.61167, 0], + [127.583331, 36.619651, 0], + [127.577563, 36.62529, 0], + [127.568436, 36.632611, 0], + [127.55691, 36.639498, 0], + [127.545433, 36.644732, 0], + [127.53582, 36.648314, 0], + [127.525864, 36.650792, 0], + [127.514674, 36.652226, 0], + [127.498741, 36.653272, 0], + [127.487465, 36.652441, 0], + [127.478496, 36.651243, 0], + [127.461117, 36.646993, 0], + [127.449989, 36.642529, 0], + [127.440376, 36.638397, 0], + [127.430412, 36.631617, 0], + [127.423926, 36.626505, 0], + [127.415314, 36.618008, 0], + [127.409821, 36.611118, 0], + [127.405701, 36.604228, 0], + [127.401031, 36.595319, 0], + [127.398491, 36.586587, 0], + [127.396774, 36.578868, 0], + [127.396088, 36.570321, 0], + [127.396088, 36.563703, 0], + [127.397118, 36.55543, 0], + [127.399864, 36.547156, 0], + [127.40351, 36.538152, 0], + [127.407274, 36.531513, 0], + [127.411739, 36.525168, 0], + [127.415314, 36.521225, 0], + [127.420464, 36.515431, 0], + [127.42901, 36.508319, 0], + [127.433166, 36.504945, 0], + [127.440033, 36.500529, 0], + [127.45111, 36.495632, 0], + [127.461662, 36.491421, 0], + [127.476537, 36.487971, 0], + [127.488442, 36.486453, 0] + ] + ] + }, + "properties": { "name": "성무비행장(공군)", "description": "성무비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.459222, 36.631456, 0], + [128.459358, 36.6406, 0], + [128.456612, 36.650792, 0], + [128.453024, 36.660117, 0], + [128.449561, 36.666876, 0], + [128.445376, 36.673366, 0], + [128.440501, 36.679539, 0], + [128.434972, 36.685347, 0], + [128.428833, 36.690747, 0], + [128.419189, 36.697604, 0], + [128.407237, 36.704098, 0], + [128.399161, 36.707486, 0], + [128.3852, 36.712192, 0], + [128.373165, 36.714103, 0], + [128.359451, 36.71577, 0], + [128.348808, 36.715219, 0], + [128.336888, 36.714153, 0], + [128.327986, 36.712582, 0], + [128.319289, 36.710395, 0], + [128.310864, 36.707608, 0], + [128.302774, 36.704242, 0], + [128.295082, 36.700323, 0], + [128.287845, 36.695881, 0], + [128.281121, 36.69095, 0], + [128.274958, 36.685567, 0], + [128.269405, 36.679774, 0], + [128.264503, 36.673615, 0], + [128.26029, 36.667136, 0], + [128.256798, 36.660387, 0], + [128.254053, 36.65342, 0], + [128.252076, 36.646287, 0], + [128.250881, 36.639043, 0], + [128.250478, 36.631744, 0], + [128.250961, 36.622692, 0], + [128.252335, 36.614701, 0], + [128.254016, 36.610063, 0], + [128.256747, 36.603093, 0], + [128.260224, 36.59634, 0], + [128.26442, 36.589856, 0], + [128.269303, 36.58369, 0], + [128.272934, 36.579695, 0], + [128.278084, 36.575008, 0], + [128.283234, 36.570597, 0], + [128.290787, 36.565909, 0], + [128.297653, 36.561773, 0], + [128.302557, 36.559168, 0], + [128.310621, 36.555786, 0], + [128.316536, 36.553775, 0], + [128.323059, 36.551845, 0], + [128.331642, 36.549914, 0], + [128.342285, 36.548259, 0], + [128.354671, 36.547886, 0], + [128.363759, 36.548192, 0], + [128.372779, 36.549132, 0], + [128.384171, 36.551293, 0], + [128.393097, 36.5535, 0], + [128.402023, 36.556809, 0], + [128.41198, 36.561497, 0], + [128.421747, 36.567371, 0], + [128.42847, 36.572294, 0], + [128.436356, 36.579695, 0], + [128.445101, 36.589607, 0], + [128.451462, 36.598992, 0], + [128.454552, 36.60726, 0], + [128.456955, 36.614976, 0], + [128.4588, 36.624157, 0], + [128.459222, 36.631456, 0] + ] + ] + }, + "properties": { "name": "예천비행장(공군)", "description": "예천비행장(공군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.671532, 35.059229, 0], + [128.676497, 35.058442, 0], + [128.685348, 35.0574, 0], + [128.694275, 35.056992, 0], + [128.703212, 35.057222, 0], + [128.712091, 35.058089, 0], + [128.720844, 35.059585, 0], + [128.725777, 35.060634, 0], + [128.732987, 35.062882, 0], + [128.740196, 35.06513, 0], + [128.745691, 35.067713, 0], + [128.753294, 35.071567, 0], + [128.760457, 35.075948, 0], + [128.767128, 35.080824, 0], + [128.773255, 35.086156, 0], + [128.778792, 35.091904, 0], + [128.783696, 35.098026, 0], + [128.78793, 35.104473, 0], + [128.792381, 35.113449, 0], + [128.795471, 35.122998, 0], + [128.797599, 35.132517, 0], + [128.798107, 35.139825, 0], + [128.797834, 35.14714, 0], + [128.796783, 35.154409, 0], + [128.794441, 35.163705, 0], + [128.791008, 35.171563, 0], + [128.787231, 35.17886, 0], + [128.782082, 35.186155, 0], + [128.774958, 35.194005, 0], + [128.768992, 35.199465, 0], + [128.764916, 35.202709, 0], + [128.759079, 35.206917, 0], + [128.750839, 35.211685, 0], + [128.740043, 35.216479, 0], + [128.731809, 35.219365, 0], + [128.720284, 35.222624, 0], + [128.71067, 35.223746, 0], + [128.696763, 35.224777, 0], + [128.687807, 35.224546, 0], + [128.670141, 35.222179, 0], + [128.661565, 35.220061, 0], + [128.653248, 35.21734, 0], + [128.645254, 35.214036, 0], + [128.637643, 35.210175, 0], + [128.630474, 35.205787, 0], + [128.623801, 35.200904, 0], + [128.617675, 35.195564, 0], + [128.610763, 35.187839, 0], + [128.605614, 35.180824, 0], + [128.600464, 35.172686, 0], + [128.596717, 35.16354, 0], + [128.594682, 35.156412, 0], + [128.592911, 35.147424, 0], + [128.592911, 35.139844, 0], + [128.593941, 35.129737, 0], + [128.596126, 35.120113, 0], + [128.598721, 35.113109, 0], + [128.602053, 35.106316, 0], + [128.606095, 35.099786, 0], + [128.610816, 35.093569, 0], + [128.616181, 35.087713, 0], + [128.622148, 35.082261, 0], + [128.63205, 35.074965, 0], + [128.643192, 35.068729, 0], + [128.657112, 35.063163, 0], + [128.671532, 35.059229, 0] + ] + ] + }, + "properties": { "name": "진해비행장(해군)", "description": "진해비행장(해군) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.737251, 33.474981, 0], + [126.739646, 33.474836, 0], + [126.731109, 33.476494, 0], + [126.72243, 33.477525, 0], + [126.708756, 33.477559, 0], + [126.696213, 33.476797, 0], + [126.687636, 33.475288, 0], + [126.674423, 33.471831, 0], + [126.663304, 33.467118, 0], + [126.652107, 33.460661, 0], + [126.642342, 33.453969, 0], + [126.636359, 33.448626, 0], + [126.630958, 33.442869, 0], + [126.622238, 33.432301, 0], + [126.618632, 33.423558, 0], + [126.615028, 33.414248, 0], + [126.612968, 33.406224, 0], + [126.612625, 33.399345, 0], + [126.612282, 33.391033, 0], + [126.613616, 33.380376, 0], + [126.615431, 33.373223, 0], + [126.617985, 33.366229, 0], + [126.621259, 33.359448, 0], + [126.625227, 33.35293, 0], + [126.62986, 33.346727, 0], + [126.635122, 33.340884, 0], + [126.640973, 33.335446, 0], + [126.647368, 33.330455, 0], + [126.654259, 33.325948, 0], + [126.661593, 33.321959, 0], + [126.669314, 33.318519, 0], + [126.677364, 33.315655, 0], + [126.685682, 33.313387, 0], + [126.694205, 33.311732, 0], + [126.706009, 33.310159, 0], + [126.720348, 33.310555, 0], + [126.732788, 33.31102, 0], + [126.745967, 33.315068, 0], + [126.758194, 33.318767, 0], + [126.76932, 33.324964, 0], + [126.77632, 33.329352, 0], + [126.782836, 33.334233, 0], + [126.791496, 33.341715, 0], + [126.797676, 33.349458, 0], + [126.803133, 33.357893, 0], + [126.806573, 33.364616, 0], + [126.811066, 33.376699, 0], + [126.813126, 33.389313, 0], + [126.812439, 33.402785, 0], + [126.811066, 33.411669, 0], + [126.805229, 33.425424, 0], + [126.801453, 33.43316, 0], + [126.795483, 33.441462, 0], + [126.790224, 33.447311, 0], + [126.78154, 33.455219, 0], + [126.7733, 33.460661, 0], + [126.76374, 33.466259, 0], + [126.751671, 33.471831, 0], + [126.737251, 33.474981, 0] + ] + ] + }, + "properties": { "name": "정석비행장(민간사설)", "description": "정석비행장(민간사설) 반경 9.3Km 비행장", "type": "0004" } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [127.115577, 37.3849, 0] }, + "properties": { + "name": "탄천 RC비행장", + "description": "경기도 성남시 분당구 수내동 45", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [126.8584, 37.5783, 0] }, + "properties": { + "name": "가양대교 북단 RC 비행장", + "description": "경기 고양시 덕양구 덕은동 520-26 (서울 P-73 공역 비행통제 지역으로서 허가를 받은 후 비행)", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [127.2158, 37.5583, 0] }, + "properties": { + "name": "미사리 RC비행장", + "description": "경기도 하남시 미사동 57-2", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [126.6563, 37.1907, 0] }, + "properties": { + "name": "전곡항 RC비행장", + "description": "경기도 화성시 서신면 전곡리 전곡항 교차로", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [127.1194, 37.5473, 0] }, + "properties": { + "name": "광나루 RC비행장", + "description": "서울특별시 강동구 천호동 351-1 (한강시민공원광나루지구4주차장)", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [126.7482, 37.5334, 0] }, + "properties": { + "name": "계양 경기장 RC비행장", + "description": "인천광역시 계양구 서운동 111 (양궁훈련이 있을 경우 비행을 할 수 없습니다)", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [127.1003, 37.4969, 0] }, + "properties": { + "name": "탄천 유수지 RC비행장", + "description": "서울특별시 송파구 가락동 508", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [126.7595, 37.4023, 0] }, + "properties": { + "name": "포동 RC비행장", + "description": "경기도 시흥시 방산동 779-63", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [127.4066, 37.7206, 0] }, + "properties": { + "name": "신청평대교 RC비행장", + "description": "경기도 가평군 청평면 대성리 산2-1", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "Point", "coordinates": [126.995, 37.1682, 0] }, + "properties": { + "name": "용수교 RC비행장", + "description": "경기도 화성시 정남면 발산리 16-1", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [126.872566, 35.234922, 0] + }, + "properties": { + "name": "광주 하늘사랑 무선모형 비행클럽 RC비행장", + "description": "광주광역시 북구 지야동 682", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [126.891268, 37.419289, 0] + }, + "properties": { + "name": "광명역 RC비행장", + "description": "경기도 안양시 만안구 석수동 안양석수스마트타운", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [126.8775845, 37.5170106, 0] + }, + "properties": { "name": "신정교 RC 비행장", + "description": "경기도 안양시 만안구 석수동 안양석수스마트타운", + "type": "0005" + } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [127.023178, 35.729104, 70.42], + [127.022043, 35.728036, 63.26], + [127.020797, 35.727053, 66], + [127.019451, 35.726162, 85.07], + [127.018014, 35.725369, 115.47], + [127.016497, 35.724681, 117.54], + [127.014913, 35.724103, 123.83], + [127.013272, 35.723639, 130.38], + [127.011588, 35.723294, 129.65], + [127.009873, 35.723068, 127.37], + [127.008141, 35.722965, 104.11], + [127.006404, 35.722985, 62.97], + [127.004675, 35.723127, 50.18], + [127.002969, 35.723391, 36.53], + [127.001297, 35.723775, 30.39], + [126.999673, 35.724276, 29], + [126.998109, 35.72489, 27.88], + [126.996617, 35.725612, 26.08], + [126.995208, 35.726436, 24.59], + [126.993893, 35.727358, 23.43], + [126.992681, 35.728369, 21.5], + [126.991583, 35.729462, 19.57], + [126.990606, 35.730628, 18.32], + [126.989758, 35.731859, 17.93], + [126.989046, 35.733145, 17.64], + [126.988474, 35.734477, 17.9], + [126.988048, 35.735844, 18.26], + [126.987769, 35.737236, 18.11], + [126.987642, 35.738643, 17.86], + [126.987666, 35.740053, 17.91], + [126.987841, 35.741456, 19.15], + [126.988166, 35.742842, 21.67], + [126.988639, 35.744199, 24.39], + [126.989256, 35.745517, 27.28], + [126.990012, 35.746787, 30.34], + [126.990901, 35.747999, 33.53], + [126.991918, 35.749143, 36.82], + [126.993053, 35.75021, 35.56], + [126.994299, 35.751194, 31.75], + [126.995645, 35.752085, 28.02], + [126.997083, 35.752878, 29.09], + [126.998599, 35.753566, 33.43], + [127.000185, 35.754144, 40.19], + [127.001826, 35.754608, 41.77], + [127.00351, 35.754954, 57.3], + [127.005226, 35.75518, 74.55], + [127.006959, 35.755283, 87.26], + [127.008697, 35.755263, 106.79], + [127.010426, 35.755121, 134.69], + [127.012133, 35.754856, 165.27], + [127.013805, 35.754472, 196.91], + [127.01543, 35.753971, 225.04], + [127.016994, 35.753357, 246.78], + [127.018487, 35.752635, 293.57], + [127.019896, 35.75181, 282.64], + [127.021212, 35.750888, 309.31], + [127.022423, 35.749877, 343.91], + [127.023521, 35.748784, 413.87], + [127.024497, 35.747617, 422.86], + [127.025345, 35.746386, 375.48], + [127.026057, 35.745099, 302.1], + [127.026628, 35.743767, 245.85], + [127.027054, 35.7424, 226.87], + [127.027331, 35.741008, 235.81], + [127.027458, 35.739601, 235.43], + [127.027433, 35.738191, 222.18], + [127.027257, 35.736788, 203.97], + [127.026931, 35.735403, 188.58], + [127.026458, 35.734046, 153.11], + [127.025841, 35.732727, 110.17], + [127.025084, 35.731458, 93.28], + [127.024194, 35.730247, 81.03], + [127.023178, 35.729104, 70.42] + ] + }, + "properties": { + "name": "구성산 반경 1.8Km", + "description": "전라북도 김제시 금산면 삼봉리 124-1", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [128.423422, 35.735448, 61.15], + [128.422995, 35.735022, 30.47], + [128.422524, 35.734628, 26.59], + [128.422013, 35.734268, 22.84], + [128.421465, 35.733946, 19.23], + [128.420885, 35.733665, 15.79], + [128.420276, 35.733425, 12.55], + [128.419644, 35.733229, 9.54], + [128.418994, 35.733079, 7.2], + [128.41833, 35.732975, 8.1], + [128.417657, 35.732919, 8.97], + [128.416981, 35.73291, 9.8], + [128.416306, 35.732949, 10.39], + [128.415638, 35.733036, 10.41], + [128.414982, 35.73317, 24.05], + [128.414343, 35.73335, 24.8], + [128.413726, 35.733574, 20.13], + [128.413135, 35.733841, 18.43], + [128.412575, 35.734149, 21.29], + [128.41205, 35.734495, 21.21], + [128.411564, 35.734877, 21.28], + [128.411121, 35.735292, 21.12], + [128.410725, 35.735737, 20.74], + [128.410377, 35.736208, 20.14], + [128.410082, 35.736702, 17.03], + [128.409841, 35.737215, 13.26], + [128.409655, 35.737743, 9.54], + [128.409527, 35.738282, 7.98], + [128.409458, 35.738828, 9.16], + [128.409447, 35.739377, 10.56], + [128.409496, 35.739925, 11.09], + [128.409603, 35.740467, 13.07], + [128.409768, 35.740999, 15.75], + [128.409989, 35.741518, 17.6], + [128.410265, 35.742019, 19.2], + [128.410594, 35.742499, 19.78], + [128.410973, 35.742953, 19.27], + [128.4114, 35.74338, 18.79], + [128.411871, 35.743774, 18.33], + [128.412382, 35.744133, 20.08], + [128.41293, 35.744455, 31.43], + [128.413511, 35.744737, 41.66], + [128.414119, 35.744977, 37.94], + [128.414751, 35.745173, 40.36], + [128.415402, 35.745323, 46.83], + [128.416066, 35.745427, 48.15], + [128.416739, 35.745483, 49.38], + [128.417415, 35.745492, 53.29], + [128.41809, 35.745452, 63.09], + [128.418758, 35.745366, 74.22], + [128.419414, 35.745232, 78.43], + [128.420053, 35.745052, 66.9], + [128.42067, 35.744828, 52.04], + [128.421261, 35.744561, 42.52], + [128.421822, 35.744253, 35.95], + [128.422346, 35.743906, 38.33], + [128.422832, 35.743524, 44.87], + [128.423275, 35.743109, 45.76], + [128.423672, 35.742664, 45.91], + [128.424019, 35.742193, 44.45], + [128.424314, 35.741699, 36.55], + [128.424555, 35.741186, 28.89], + [128.424741, 35.740658, 35.1], + [128.424868, 35.740119, 39.29], + [128.424938, 35.739573, 56.98], + [128.424948, 35.739024, 75.28], + [128.4249, 35.738477, 87.78], + [128.424793, 35.737934, 97.41], + [128.424628, 35.737402, 104.3], + [128.424406, 35.736883, 109], + [128.42413, 35.736382, 107.92], + [128.423801, 35.735902, 87.73], + [128.423422, 35.735448, 61.15] + ] + }, + "properties": { + "name": "약산 반경 0.7Km", + "description": "대구광역시 달성군 논공읍 하리 757", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [129.063101, 35.598445, 259.84], + [129.06031, 35.600617, 270.31], + [129.057763, 35.602978, 278.07], + [129.055478, 35.605511, 326.98], + [129.053473, 35.608196, 402.16], + [129.051764, 35.611013, 377.99], + [129.050362, 35.61394, 270.03], + [129.049281, 35.616955, 237.02], + [129.048526, 35.620036, 271.82], + [129.048105, 35.623158, 355.33], + [129.04802, 35.626298, 435.81], + [129.048272, 35.629433, 453.78], + [129.048859, 35.632537, 419.71], + [129.049777, 35.635588, 403.61], + [129.051019, 35.638563, 403.36], + [129.052575, 35.641438, 454.38], + [129.054434, 35.644192, 531.01], + [129.056581, 35.646804, 593.83], + [129.059, 35.649253, 609.72], + [129.061674, 35.651522, 577.54], + [129.06458, 35.653593, 521.73], + [129.067698, 35.65545, 517.45], + [129.071003, 35.657079, 503.15], + [129.07447, 35.658468, 534.27], + [129.078074, 35.659606, 503.39], + [129.081785, 35.660484, 487.77], + [129.085577, 35.661096, 477.95], + [129.089421, 35.661436, 469.79], + [129.093286, 35.661504, 465.79], + [129.097143, 35.661297, 491.96], + [129.100964, 35.660817, 540.98], + [129.104719, 35.660069, 575.48], + [129.108379, 35.659057, 582.74], + [129.111916, 35.657791, 571.09], + [129.115304, 35.656278, 484.89], + [129.118517, 35.654531, 462.29], + [129.121529, 35.652563, 393.03], + [129.124319, 35.650389, 322.53], + [129.126866, 35.648025, 389.32], + [129.129148, 35.645491, 455.78], + [129.13115, 35.642804, 444.16], + [129.132857, 35.639985, 410.05], + [129.134254, 35.637057, 382.27], + [129.135331, 35.63404, 340.9], + [129.136081, 35.630959, 262.61], + [129.136498, 35.627836, 222.92], + [129.136578, 35.624696, 185], + [129.136322, 35.621562, 149.13], + [129.13573, 35.618458, 160.52], + [129.134807, 35.615408, 195.08], + [129.133561, 35.612434, 187.68], + [129.132002, 35.609561, 182.92], + [129.13014, 35.606809, 180.38], + [129.12799, 35.604199, 169.44], + [129.125569, 35.601751, 158.58], + [129.122895, 35.599484, 188.81], + [129.119988, 35.597416, 179.01], + [129.11687, 35.595561, 110.17], + [129.113566, 35.593934, 110.5], + [129.1101, 35.592547, 117.28], + [129.106499, 35.591412, 147.57], + [129.10279, 35.590535, 144.77], + [129.099001, 35.589925, 135.16], + [129.095161, 35.589586, 136.08], + [129.091299, 35.58952, 140.67], + [129.087445, 35.589727, 139.66], + [129.083628, 35.590208, 133.02], + [129.079876, 35.590956, 148.73], + [129.07622, 35.591968, 166.91], + [129.072685, 35.593235, 175.08], + [129.0693, 35.594747, 194.21], + [129.066089, 35.596494, 246.4], + [129.063101, 35.598445, 259.84] + ] + }, + "properties": { + "name": "봉화산 반경 4Km", + "description": "울산광역시 울주군 상북면 궁근정리 산125-2", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [127.498239, 35.382618, 655.18], + [127.495257, 35.385181, 577.08], + [127.492559, 35.387947, 527.94], + [127.490168, 35.390893, 529.07], + [127.4881, 35.393998, 491.49], + [127.486372, 35.397238, 569.15], + [127.484997, 35.400589, 641.66], + [127.483985, 35.404024, 628.82], + [127.483345, 35.407518, 501.81], + [127.48308, 35.411045, 451.61], + [127.483194, 35.414577, 397.16], + [127.483685, 35.418087, 447.21], + [127.48455, 35.421549, 395.79], + [127.485782, 35.424937, 347], + [127.487371, 35.428224, 412.8], + [127.489306, 35.431385, 468.03], + [127.491573, 35.434397, 542.71], + [127.494153, 35.437237, 533.95], + [127.497027, 35.439883, 530.82], + [127.500174, 35.442314, 493.74], + [127.503568, 35.444512, 483.9], + [127.507186, 35.446461, 492.73], + [127.510998, 35.448146, 484.75], + [127.514976, 35.449553, 479.91], + [127.51909, 35.450673, 479.06], + [127.523307, 35.451496, 481.77], + [127.527597, 35.452016, 479.62], + [127.531927, 35.452229, 482.38], + [127.536262, 35.452134, 473.24], + [127.540571, 35.451731, 467.55], + [127.54482, 35.451024, 457.84], + [127.548978, 35.450018, 453.48], + [127.553012, 35.44872, 456.74], + [127.556891, 35.447141, 476.03], + [127.560587, 35.445292, 522.32], + [127.56407, 35.443187, 627.13], + [127.567315, 35.440843, 727.06], + [127.570297, 35.438278, 781.82], + [127.572992, 35.43551, 734.29], + [127.575381, 35.432562, 878.64], + [127.577445, 35.429455, 1018.94], + [127.579169, 35.426213, 1102.37], + [127.58054, 35.422861, 1018.87], + [127.581547, 35.419424, 1011.7], + [127.582182, 35.41593, 913.51], + [127.582441, 35.412403, 780.61], + [127.582322, 35.408871, 660.32], + [127.581825, 35.405361, 662.11], + [127.580955, 35.4019, 809.24], + [127.579719, 35.398514, 977.3], + [127.578125, 35.395228, 916.5], + [127.576186, 35.392068, 760.94], + [127.573917, 35.389058, 650.1], + [127.571335, 35.386221, 657.75], + [127.568459, 35.383578, 780.06], + [127.565312, 35.381149, 910.29], + [127.561918, 35.378953, 944.32], + [127.558302, 35.377006, 918.78], + [127.554491, 35.375324, 893.27], + [127.550516, 35.373919, 1024.06], + [127.546405, 35.372801, 926.45], + [127.542191, 35.37198, 1034.51], + [127.537905, 35.371461, 1053.01], + [127.53358, 35.371249, 1056.67], + [127.529249, 35.371345, 1198.64], + [127.524944, 35.371748, 1211.89], + [127.520699, 35.372455, 1037.89], + [127.516546, 35.373462, 882.59], + [127.512515, 35.374759, 778.41], + [127.508639, 35.376338, 682.31], + [127.504946, 35.378186, 698.02], + [127.501465, 35.38029, 707.68], + [127.498239, 35.382618, 655.18] + ] + }, + "properties": { + "name": "덕두산 반경 4.5Km", + "description": "전라북도 남원시 운봉읍 공안리 519-1", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.967629, 34.721124, 242.73], + [127.966062, 34.722156, 194.34], + [127.96461, 34.723297, 129.52], + [127.963284, 34.724536, 74.93], + [127.962094, 34.725867, 45.15], + [127.961051, 34.727277, 77.16], + [127.96016, 34.728757, 110.07], + [127.95943, 34.730294, 149.97], + [127.958866, 34.731879, 108.92], + [127.958472, 34.733497, 75.75], + [127.958251, 34.735138, 31.21], + [127.958205, 34.736788, 25.72], + [127.958334, 34.738436, 75.65], + [127.958638, 34.740067, 89.63], + [127.959113, 34.741671, 100.68], + [127.959757, 34.743235, 147.22], + [127.960564, 34.744747, 152.5], + [127.961528, 34.746195, 187.52], + [127.962643, 34.747568, 215.26], + [127.963898, 34.748857, 248.11], + [127.965286, 34.75005, 230.65], + [127.966795, 34.75114, 299.35], + [127.968414, 34.752117, 364.32], + [127.970131, 34.752975, 391.31], + [127.971932, 34.753706, 393.84], + [127.973804, 34.754306, 424.1], + [127.975732, 34.75477, 478.32], + [127.977702, 34.755093, 541.28], + [127.979699, 34.755274, 602.99], + [127.981708, 34.755312, 663.92], + [127.983713, 34.755205, 629.93], + [127.985699, 34.754955, 591.06], + [127.987651, 34.754564, 565.89], + [127.989554, 34.754035, 589.71], + [127.991393, 34.753371, 602.13], + [127.993156, 34.752578, 558.92], + [127.994827, 34.751662, 466.75], + [127.996395, 34.75063, 423.48], + [127.997847, 34.749489, 382.7], + [127.999172, 34.748249, 400.57], + [128.000361, 34.746918, 356.06], + [128.001405, 34.745508, 319.45], + [128.002294, 34.744028, 310.05], + [128.003024, 34.74249, 258.14], + [128.003587, 34.740905, 246.81], + [128.00398, 34.739286, 267.67], + [128.0042, 34.737646, 253.83], + [128.004245, 34.735995, 175.77], + [128.004115, 34.734348, 138.34], + [128.003811, 34.732716, 103.97], + [128.003334, 34.731113, 113.96], + [128.00269, 34.729549, 165.1], + [128.001882, 34.728038, 226.76], + [128.000917, 34.72659, 257.94], + [127.999802, 34.725217, 236.74], + [127.998546, 34.723929, 181.96], + [127.997159, 34.722736, 109.97], + [127.995649, 34.721647, 67.88], + [127.994031, 34.72067, 37.49], + [127.992315, 34.719812, 9.64], + [127.990514, 34.719081, 0], + [127.988643, 34.718482, 0], + [127.986715, 34.718019, 0.9], + [127.984746, 34.717695, 1.95], + [127.98275, 34.717514, 20.76], + [127.980742, 34.717477, 69.87], + [127.978738, 34.717583, 133.44], + [127.976753, 34.717833, 193.75], + [127.974802, 34.718224, 167.21], + [127.972899, 34.718753, 151.18], + [127.971061, 34.719417, 190.33], + [127.969299, 34.720209, 232.65], + [127.967629, 34.721124, 242.73] + ] + }, + "properties": { + "name": "금산 반경 2.1Km", + "description": "경상남도 남해군 상주면 상주리 산270-14", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.094163, 35.826471, 51.72], + [127.09396, 35.825556, 43.46], + [127.093659, 35.82466, 41.83], + [127.093264, 35.823788, 40.53], + [127.092776, 35.822947, 40.2], + [127.092199, 35.822144, 40.93], + [127.091539, 35.821385, 41.63], + [127.090799, 35.820675, 42.27], + [127.089986, 35.82002, 42.81], + [127.089106, 35.819426, 43.42], + [127.088165, 35.818895, 44.62], + [127.087171, 35.818434, 45.88], + [127.08613, 35.818044, 47.16], + [127.085052, 35.817729, 50.67], + [127.083945, 35.817492, 60.87], + [127.082816, 35.817334, 70.8], + [127.081674, 35.817256, 80.39], + [127.080528, 35.817259, 80.43], + [127.079387, 35.817343, 72.58], + [127.078259, 35.817508, 64.67], + [127.077153, 35.817751, 56.75], + [127.076078, 35.818072, 53.66], + [127.075041, 35.818467, 53.73], + [127.074051, 35.818935, 53.78], + [127.073114, 35.81947, 53.81], + [127.072239, 35.82007, 53.51], + [127.071432, 35.820729, 51.79], + [127.070698, 35.821443, 50.08], + [127.070044, 35.822205, 48.39], + [127.069474, 35.823012, 46.72], + [127.068993, 35.823855, 45.11], + [127.068605, 35.824729, 43.54], + [127.068312, 35.825627, 42.05], + [127.068117, 35.826543, 40.64], + [127.068021, 35.827469, 39.31], + [127.068025, 35.828398, 38.09], + [127.068128, 35.829323, 36.97], + [127.068331, 35.830238, 35.98], + [127.068631, 35.831134, 35.11], + [127.069027, 35.832006, 34.37], + [127.069515, 35.832847, 33.77], + [127.070091, 35.83365, 33.31], + [127.070751, 35.834409, 33], + [127.071491, 35.835119, 34.58], + [127.072304, 35.835774, 36.47], + [127.073185, 35.836369, 38.52], + [127.074126, 35.836899, 40.72], + [127.07512, 35.837361, 43.04], + [127.07616, 35.837751, 45.47], + [127.077239, 35.838065, 47.99], + [127.078347, 35.838303, 50.59], + [127.079476, 35.838461, 53.24], + [127.080618, 35.838539, 55.91], + [127.081764, 35.838536, 58.6], + [127.082906, 35.838451, 61.28], + [127.084034, 35.838287, 63.93], + [127.08514, 35.838043, 66.53], + [127.086215, 35.837722, 100], + [127.087252, 35.837327, 125.26], + [127.088243, 35.836859, 148.13], + [127.089179, 35.836324, 155.09], + [127.090055, 35.835724, 124.41], + [127.090862, 35.835065, 105.54], + [127.091596, 35.834351, 97.24], + [127.09225, 35.833588, 95.28], + [127.092819, 35.832781, 93.63], + [127.0933, 35.831938, 92.3], + [127.093688, 35.831064, 91.29], + [127.09398, 35.830165, 80.82], + [127.094175, 35.82925, 62.83], + [127.094271, 35.828324, 50.18], + [127.094267, 35.827395, 47.65], + [127.094163, 35.826471, 51.72] + ] + }, + "properties": { + "name": "홍산 반경 1.2Km", + "description": "전라북도 전주시 완산구 상림동 23-3", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.707398, 35.356274, 299.98], + [126.704265, 35.358102, 349.1], + [126.70134, 35.360146, 342.03], + [126.698645, 35.362389, 249.86], + [126.696199, 35.364816, 224.18], + [126.694022, 35.367407, 160.02], + [126.692129, 35.370143, 133.25], + [126.690537, 35.373003, 92.48], + [126.689256, 35.375965, 110.69], + [126.688296, 35.379008, 138.4], + [126.687666, 35.382106, 154.49], + [126.687369, 35.385238, 163.23], + [126.687408, 35.388379, 140.49], + [126.687782, 35.391505, 99.09], + [126.68849, 35.394593, 58.67], + [126.689525, 35.397619, 59.23], + [126.690879, 35.400559, 62.5], + [126.692543, 35.403392, 67.38], + [126.694504, 35.406097, 75.13], + [126.696747, 35.408651, 91.44], + [126.699254, 35.411036, 111.06], + [126.702007, 35.413235, 111.47], + [126.704985, 35.415229, 102.69], + [126.708165, 35.417004, 103.79], + [126.711523, 35.418546, 161.25], + [126.715033, 35.419844, 190.92], + [126.718669, 35.420887, 271.6], + [126.722402, 35.421668, 174.23], + [126.726205, 35.422181, 87.84], + [126.730048, 35.422421, 95.55], + [126.733903, 35.422388, 103.7], + [126.737739, 35.422081, 117.71], + [126.741527, 35.421502, 167.18], + [126.74524, 35.420656, 201.33], + [126.748847, 35.41955, 259.71], + [126.752322, 35.418192, 357.55], + [126.755639, 35.416592, 370.1], + [126.758772, 35.414762, 270.87], + [126.761697, 35.412717, 251.35], + [126.764392, 35.410471, 278.92], + [126.766837, 35.408043, 353.73], + [126.769012, 35.40545, 250.86], + [126.770902, 35.402712, 187.79], + [126.772491, 35.399851, 186.29], + [126.773769, 35.396888, 174.09], + [126.774725, 35.393845, 136.85], + [126.775351, 35.390745, 132.66], + [126.775644, 35.387613, 103.96], + [126.775601, 35.384472, 175.67], + [126.775222, 35.381347, 200.2], + [126.774511, 35.37826, 209.5], + [126.773472, 35.375235, 166.37], + [126.772114, 35.372295, 159.12], + [126.770448, 35.369463, 192.34], + [126.768484, 35.366761, 163.01], + [126.76624, 35.364208, 101.98], + [126.763732, 35.361824, 145.71], + [126.760978, 35.359628, 155.08], + [126.758, 35.357636, 94.85], + [126.754821, 35.355863, 92.59], + [126.751465, 35.354322, 125.53], + [126.747957, 35.353026, 133.58], + [126.744323, 35.351984, 191.48], + [126.740593, 35.351205, 269.65], + [126.736793, 35.350693, 214.36], + [126.732953, 35.350453, 170.4], + [126.729102, 35.350487, 208.51], + [126.72527, 35.350795, 233.97], + [126.721484, 35.351373, 259.83], + [126.717775, 35.352219, 341.66], + [126.714171, 35.353325, 473.56], + [126.710698, 35.354683, 379.41], + [126.707398, 35.356274, 299.98] + ] + }, + "properties": { + "name": "고창 반경 4Km", + "description": "전라남도 장성군 북일면 문암리 산236", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.459929, 34.687277, 1.02], + [126.458887, 34.691416, 5.75], + [126.458287, 34.695613, 7], + [126.458135, 34.699837, 6.46], + [126.45843, 34.704057, 5.74], + [126.459173, 34.708239, 3.03], + [126.460356, 34.712351, 0.22], + [126.46197, 34.716364, 0], + [126.464004, 34.720245, 0.18], + [126.466442, 34.723966, 0.93], + [126.469266, 34.727498, 1.62], + [126.472453, 34.730814, 2.23], + [126.475981, 34.733889, 2.55], + [126.479821, 34.7367, 3.06], + [126.483945, 34.739225, 9.37], + [126.488322, 34.741445, 10.9], + [126.492917, 34.743342, 11.68], + [126.497697, 34.744903, 12.27], + [126.502624, 34.746116, 11.33], + [126.507661, 34.746971, 11.58], + [126.512769, 34.747462, 12.68], + [126.51791, 34.747585, 10.64], + [126.523045, 34.747339, 15.96], + [126.528134, 34.746726, 22.19], + [126.533138, 34.745751, 28.71], + [126.53802, 34.744421, 42.66], + [126.542742, 34.742746, 92.44], + [126.547268, 34.740739, 115.5], + [126.551564, 34.738415, 100.32], + [126.555597, 34.735793, 75.38], + [126.559336, 34.732891, 44.57], + [126.562753, 34.729733, 17.78], + [126.565822, 34.726342, 10.07], + [126.568519, 34.722744, 26.27], + [126.570824, 34.718966, 56.56], + [126.57272, 34.715038, 58.21], + [126.574191, 34.710988, 27.31], + [126.575228, 34.706849, 17.06], + [126.575822, 34.702651, 18.25], + [126.575968, 34.698427, 18.42], + [126.575666, 34.694208, 16.65], + [126.574918, 34.690027, 18.87], + [126.57373, 34.685915, 47.07], + [126.572111, 34.681904, 140.34], + [126.570072, 34.678024, 125.1], + [126.567631, 34.674306, 96.36], + [126.564805, 34.670776, 108.45], + [126.561616, 34.667462, 94.57], + [126.558088, 34.664389, 11.04], + [126.554249, 34.661581, 0], + [126.550126, 34.659059, 0], + [126.545752, 34.656841, 0], + [126.541161, 34.654945, 0], + [126.536386, 34.653386, 0], + [126.531464, 34.652175, 0], + [126.526432, 34.651321, 0], + [126.521329, 34.65083, 0], + [126.516194, 34.650708, 0.05], + [126.511066, 34.650953, 0], + [126.505982, 34.651566, 0], + [126.500983, 34.65254, 0], + [126.496106, 34.653868, 0], + [126.491388, 34.655541, 0], + [126.486865, 34.657546, 0], + [126.482572, 34.659867, 0], + [126.478541, 34.662487, 0], + [126.474802, 34.665386, 0], + [126.471384, 34.668542, 0], + [126.468314, 34.671931, 0], + [126.465614, 34.675527, 0], + [126.463305, 34.679303, 0], + [126.461405, 34.683229, 0], + [126.459929, 34.687277, 1.02] + ] + }, + "properties": { "name": "성화대", + "description": "성화대 반경 5.4Km", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.715947, 35.429372, 83.31], + [126.713887, 35.431022, 59.46], + [126.712012, 35.432813, 56.48], + [126.710336, 35.434729, 53.18], + [126.70887, 35.436758, 56.9], + [126.707628, 35.438882, 90.41], + [126.706617, 35.441087, 132.52], + [126.705846, 35.443355, 107.24], + [126.70532, 35.44567, 80.1], + [126.705045, 35.448013, 63.69], + [126.70502, 35.450366, 64.78], + [126.705248, 35.452712, 65.97], + [126.705726, 35.455034, 86.53], + [126.706451, 35.457312, 91.32], + [126.707417, 35.45953, 91.42], + [126.708616, 35.461672, 85.91], + [126.71004, 35.463719, 62.47], + [126.711678, 35.465659, 57.78], + [126.713517, 35.467474, 55.66], + [126.715544, 35.469152, 47.84], + [126.717743, 35.470679, 49.54], + [126.720096, 35.472045, 53.61], + [126.722587, 35.473238, 57.92], + [126.725197, 35.47425, 62.44], + [126.727905, 35.475073, 67.25], + [126.73069, 35.4757, 68.24], + [126.733532, 35.476127, 69.74], + [126.736409, 35.476351, 71.03], + [126.739299, 35.476369, 77.3], + [126.74218, 35.476182, 92.85], + [126.74503, 35.475792, 108.01], + [126.747828, 35.4752, 122.65], + [126.750551, 35.474412, 148.88], + [126.75318, 35.473434, 188.38], + [126.755694, 35.472273, 229.56], + [126.758073, 35.470938, 323.61], + [126.760301, 35.469439, 361.87], + [126.76236, 35.467787, 482.94], + [126.764234, 35.465996, 556.08], + [126.76591, 35.464078, 524.83], + [126.767373, 35.462048, 442.07], + [126.768614, 35.459923, 362.99], + [126.769622, 35.457717, 297.16], + [126.770391, 35.455448, 243.62], + [126.770914, 35.453134, 250.97], + [126.771187, 35.45079, 246.59], + [126.771208, 35.448437, 257.94], + [126.770977, 35.446091, 225.98], + [126.770497, 35.44377, 203.53], + [126.76977, 35.441492, 183.01], + [126.768802, 35.439275, 207.39], + [126.7676, 35.437134, 262.19], + [126.766174, 35.435087, 256.98], + [126.764535, 35.433149, 211.76], + [126.762695, 35.431335, 208.38], + [126.760667, 35.429659, 256.96], + [126.758469, 35.428133, 258.11], + [126.756115, 35.426768, 264.9], + [126.753624, 35.425576, 326.13], + [126.751016, 35.424566, 344.42], + [126.748309, 35.423744, 286.84], + [126.745525, 35.423118, 231.82], + [126.742685, 35.422692, 186.07], + [126.739809, 35.422469, 138.73], + [126.736921, 35.422451, 113.19], + [126.734042, 35.422639, 104.6], + [126.731194, 35.42303, 91.21], + [126.728399, 35.423621, 91.44], + [126.725677, 35.424409, 83.84], + [126.72305, 35.425388, 105.13], + [126.720538, 35.426549, 150.64], + [126.718159, 35.427884, 136.28], + [126.715947, 35.429372, 83.31] + ] + }, + "properties": { "name": "방장산", + "description": "방장산 반경 5.4Km", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [127.155989, 34.582098, 85.26], + [127.153121, 34.585795, 80.12], + [127.150655, 34.589684, 129.1], + [127.148611, 34.593735, 51.74], + [127.147002, 34.597918, 0], + [127.145843, 34.602199, 0], + [127.145141, 34.606548, 0], + [127.144903, 34.61093, 0], + [127.145129, 34.615313, 0], + [127.145819, 34.619663, 0], + [127.146966, 34.623947, 0], + [127.148564, 34.628132, 0], + [127.150598, 34.632187, 0], + [127.153055, 34.636081, 0], + [127.155915, 34.639783, 0], + [127.159157, 34.643266, 0], + [127.162755, 34.646503, 0], + [127.166683, 34.64947, 0], + [127.170911, 34.652144, 0], + [127.175406, 34.654504, 0], + [127.180134, 34.656533, 0], + [127.18506, 34.658215, 0], + [127.190145, 34.659537, 0], + [127.195351, 34.66049, 0], + [127.200638, 34.661065, 0], + [127.205966, 34.661259, 0], + [127.211295, 34.66107, 0], + [127.216583, 34.660499, 0], + [127.22179, 34.659552, 0.25], + [127.226877, 34.658234, 13.25], + [127.231805, 34.656557, 8.54], + [127.236536, 34.654532, 3.49], + [127.241034, 34.652176, 30.59], + [127.245266, 34.649506, 65.41], + [127.249198, 34.646543, 119.55], + [127.2528, 34.643309, 112.86], + [127.256047, 34.639829, 74.12], + [127.258912, 34.636129, 85.91], + [127.261374, 34.632238, 92.34], + [127.263414, 34.628185, 94.89], + [127.265017, 34.624001, 176.57], + [127.26617, 34.619718, 147.94], + [127.266866, 34.615369, 88.62], + [127.267098, 34.610986, 48.01], + [127.266865, 34.606604, 71.75], + [127.26617, 34.602254, 63.42], + [127.265016, 34.597972, 87.93], + [127.263413, 34.593788, 106.35], + [127.261374, 34.589735, 83.89], + [127.258914, 34.585844, 59.13], + [127.256051, 34.582144, 32.4], + [127.252808, 34.578663, 26.35], + [127.249209, 34.575429, 58.73], + [127.245281, 34.572465, 49.08], + [127.241055, 34.569793, 51.06], + [127.236563, 34.567436, 88.73], + [127.231838, 34.565409, 106.71], + [127.226917, 34.563729, 76.4], + [127.221837, 34.562408, 38.5], + [127.216637, 34.561457, 10.59], + [127.211356, 34.560882, 1.13], + [127.206034, 34.560688, 11.86], + [127.200712, 34.560877, 29.24], + [127.195431, 34.561447, 14.29], + [127.190229, 34.562394, 3.69], + [127.185147, 34.56371, 13.65], + [127.180224, 34.565385, 27.05], + [127.175497, 34.567408, 30.05], + [127.171001, 34.569761, 25.62], + [127.166772, 34.572429, 57.94], + [127.16284, 34.575389, 70.74], + [127.159237, 34.578621, 70.26], + [127.155989, 34.582098, 85.26] + ] + }, + "properties": { "name": "고흥", + "description": "고흥 반경 5.4Km", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [126.988376, 35.30438, 64.03], + [126.984556, 35.307483, 60.73], + [126.981082, 35.310844, 49.64], + [126.97798, 35.314441, 46.54], + [126.975273, 35.318244, 46.86], + [126.972983, 35.322225, 47.32], + [126.971127, 35.326353, 58.26], + [126.969718, 35.330598, 49.79], + [126.968768, 35.334927, 48.86], + [126.968284, 35.339307, 51.72], + [126.96827, 35.343705, 55.05], + [126.968726, 35.348087, 61.25], + [126.969649, 35.35242, 80.4], + [126.971031, 35.35667, 111.09], + [126.972863, 35.360807, 161.83], + [126.975129, 35.364797, 238.41], + [126.977814, 35.368611, 180.42], + [126.980896, 35.37222, 100.91], + [126.984353, 35.375595, 128.26], + [126.988158, 35.378713, 189.64], + [126.992281, 35.381547, 160.08], + [126.996693, 35.384078, 202.42], + [127.001358, 35.386286, 293.84], + [127.006242, 35.388153, 128.04], + [127.011307, 35.389666, 134.52], + [127.016514, 35.390813, 141.59], + [127.021825, 35.391586, 235.55], + [127.027198, 35.391978, 375.19], + [127.032593, 35.391987, 432.82], + [127.037968, 35.391612, 412.39], + [127.043282, 35.390856, 315.03], + [127.048495, 35.389725, 373.38], + [127.053567, 35.388229, 439.46], + [127.05846, 35.386377, 417.98], + [127.063136, 35.384184, 314.81], + [127.067559, 35.381667, 183.56], + [127.071697, 35.378846, 182.74], + [127.075516, 35.375741, 160.68], + [127.078989, 35.372376, 129.28], + [127.082089, 35.368777, 142.59], + [127.084792, 35.364972, 168.28], + [127.087078, 35.360989, 147.99], + [127.088929, 35.356858, 141.41], + [127.090331, 35.352612, 130.84], + [127.091275, 35.348282, 122.96], + [127.091752, 35.343902, 126.57], + [127.091759, 35.339504, 114.23], + [127.091296, 35.335122, 110.88], + [127.090367, 35.330791, 114.04], + [127.088979, 35.326541, 111.01], + [127.087142, 35.322407, 125.32], + [127.084871, 35.318418, 135.96], + [127.082183, 35.314607, 160.71], + [127.079098, 35.311001, 213.8], + [127.07564, 35.307628, 203.4], + [127.071835, 35.304514, 283.04], + [127.067712, 35.301682, 167.43], + [127.063303, 35.299154, 111.5], + [127.058641, 35.296949, 113.95], + [127.053762, 35.295083, 241.73], + [127.048702, 35.293572, 210.14], + [127.0435, 35.292427, 134.09], + [127.038195, 35.291655, 76.57], + [127.032829, 35.291264, 58.37], + [127.027441, 35.291255, 50.07], + [127.022073, 35.29163, 49.02], + [127.016765, 35.292385, 49.79], + [127.011557, 35.293514, 62.2], + [127.00649, 35.295009, 53.95], + [127.001602, 35.296859, 44.67], + [126.99693, 35.299049, 45.73], + [126.992509, 35.301564, 55.5], + [126.988376, 35.30438, 64.03] + ] + }, + "properties": { + "name": "담양 반경 5.6Km", + "description": "전라남도 담양군 금성면 석현리 590-14", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [126.825527, 33.452855, 176.03], + [126.822889, 33.452767, 186.48], + [126.820251, 33.45287, 197.21], + [126.817635, 33.453165, 208.13], + [126.815058, 33.453649, 217.68], + [126.812543, 33.454318, 221.9], + [126.810106, 33.455168, 225.4], + [126.807768, 33.456191, 227.66], + [126.805545, 33.457381, 220.96], + [126.803456, 33.458728, 208.53], + [126.801514, 33.460221, 211.21], + [126.799736, 33.46185, 214.62], + [126.798135, 33.463603, 211.64], + [126.796723, 33.465464, 209.19], + [126.795511, 33.467422, 206.93], + [126.794508, 33.46946, 203.12], + [126.793722, 33.471563, 197.81], + [126.793158, 33.473715, 189.65], + [126.792822, 33.475901, 181.03], + [126.792715, 33.478102, 173.47], + [126.792838, 33.480303, 169.31], + [126.793191, 33.482486, 166.78], + [126.793771, 33.484635, 163.58], + [126.794573, 33.486734, 158.49], + [126.795592, 33.488767, 157.23], + [126.796819, 33.490718, 151.81], + [126.798246, 33.492572, 146], + [126.799861, 33.494316, 139.84], + [126.801652, 33.495935, 133.75], + [126.803605, 33.497419, 127.72], + [126.805707, 33.498754, 124.97], + [126.807939, 33.499932, 116.61], + [126.810287, 33.500942, 108.07], + [126.812731, 33.501779, 101.53], + [126.815254, 33.502434, 99.78], + [126.817835, 33.502903, 91.87], + [126.820456, 33.503184, 87.12], + [126.823096, 33.503272, 82.69], + [126.825735, 33.503168, 79.26], + [126.828353, 33.502873, 74.02], + [126.830931, 33.502388, 70.03], + [126.833447, 33.501718, 66.42], + [126.835885, 33.500868, 63.21], + [126.838224, 33.499844, 61.29], + [126.840447, 33.498653, 62.94], + [126.842537, 33.497305, 65.12], + [126.844478, 33.495811, 69.67], + [126.846255, 33.494181, 73.44], + [126.847856, 33.492428, 75.89], + [126.849267, 33.490566, 76.14], + [126.850478, 33.488608, 76.52], + [126.851479, 33.486569, 76.3], + [126.852264, 33.484465, 85.15], + [126.852826, 33.482313, 88.71], + [126.853161, 33.480127, 92.17], + [126.853266, 33.477926, 95.86], + [126.85314, 33.475725, 101.49], + [126.852785, 33.473542, 108.56], + [126.852204, 33.471393, 115.7], + [126.8514, 33.469294, 115.2], + [126.85038, 33.467262, 114.21], + [126.849151, 33.465312, 116.83], + [126.847724, 33.463458, 130.32], + [126.846108, 33.461716, 131.77], + [126.844317, 33.460097, 128.21], + [126.842363, 33.458615, 135.08], + [126.840262, 33.45728, 142.79], + [126.83803, 33.456103, 150.61], + [126.835683, 33.455093, 158.35], + [126.833239, 33.454258, 164.64], + [126.830718, 33.453603, 167.59], + [126.828138, 33.453134, 170.91], + [126.825527, 33.452855, 176.03] + ] + }, + "properties": { + "name": "구좌 반경 2.8Km", + "description": "제주특별자치도 제주시 구좌읍 세화리 산6", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { "type": "LineString", + "coordinates": [ + [126.557191, 33.289318, 330.27], + [126.556076, 33.289163, 332.05], + [126.554949, 33.28909, 333.69], + [126.553819, 33.289099, 336.26], + [126.552695, 33.28919, 339.75], + [126.551584, 33.289363, 344.14], + [126.550495, 33.289616, 350.96], + [126.549437, 33.289948, 358.66], + [126.548417, 33.290355, 367.07], + [126.547444, 33.290836, 376.13], + [126.546524, 33.291385, 385.77], + [126.545666, 33.291999, 395.92], + [126.544874, 33.292673, 406.5], + [126.544156, 33.293403, 417.42], + [126.543517, 33.294182, 426.73], + [126.542961, 33.295004, 434.34], + [126.542493, 33.295864, 442.13], + [126.542117, 33.296755, 452.48], + [126.541835, 33.29767, 467.01], + [126.541649, 33.298602, 484.09], + [126.541562, 33.299544, 500.93], + [126.541573, 33.300488, 510.91], + [126.541682, 33.301429, 520.49], + [126.541889, 33.302357, 529.51], + [126.542192, 33.303267, 537.92], + [126.542589, 33.304152, 547.33], + [126.543076, 33.305004, 557.38], + [126.543651, 33.305818, 566.49], + [126.544308, 33.306586, 574.6], + [126.545043, 33.307304, 581.64], + [126.54585, 33.307965, 587.56], + [126.546723, 33.308566, 592.31], + [126.547655, 33.3091, 595.87], + [126.54864, 33.309564, 596.47], + [126.549669, 33.309955, 588.24], + [126.550735, 33.310269, 574.65], + [126.551829, 33.310505, 553.63], + [126.552945, 33.31066, 538.86], + [126.554072, 33.310733, 536.85], + [126.555202, 33.310724, 532.12], + [126.556327, 33.310632, 525.64], + [126.557438, 33.310459, 518.81], + [126.558527, 33.310205, 511.86], + [126.559585, 33.309873, 503.58], + [126.560605, 33.309465, 496.75], + [126.561578, 33.308985, 488.36], + [126.562498, 33.308435, 475.26], + [126.563356, 33.307821, 464.16], + [126.564148, 33.307146, 453.38], + [126.564865, 33.306417, 441.99], + [126.565504, 33.305637, 430.08], + [126.56606, 33.304815, 419.18], + [126.566527, 33.303954, 408.82], + [126.566903, 33.303064, 398.69], + [126.567184, 33.302149, 395.19], + [126.567369, 33.301217, 391.01], + [126.567457, 33.300275, 385.94], + [126.567445, 33.29933, 377.42], + [126.567335, 33.29839, 368.7], + [126.567128, 33.297461, 358.29], + [126.566824, 33.296551, 350.94], + [126.566427, 33.295667, 345.59], + [126.565939, 33.294815, 341.19], + [126.565364, 33.294002, 337.77], + [126.564706, 33.293233, 335.35], + [126.563971, 33.292516, 333.95], + [126.563164, 33.291855, 333.58], + [126.562291, 33.291255, 333.35], + [126.561359, 33.290721, 331.02], + [126.560374, 33.290257, 329.49], + [126.559345, 33.289866, 328.76], + [126.558279, 33.289552, 328.84], + [126.557191, 33.289318, 330.27] + ] + }, + "properties": { "name": "미악산", + "description": "미악산 반경 1.2Km", + "type": "0006", + "tessellate": true + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.383333, 37.502778, 0], + [127.383333, 37.45, 0], + [127.533333, 37.45, 0], + [127.533333, 37.502778, 0], + [127.383333, 37.502778, 0] + ] + ] + }, + "properties": { "name": "양평", + "description": "양평 초경량비행장치", + "type": "0006" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.904722, 36.528056, 0], + [126.9075, 36.468056, 0], + [127.098056, 36.434444, 0], + [127.120278, 36.500556, 0], + [126.962778, 36.5125, 0], + [126.937222, 36.540278, 0], + [126.904722, 36.528056, 0] + ] + ] + }, + "properties": { + "name": "공주", + "description": "초경량비행장치 전용 공역", + "type": "0006" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.555278, 37.237222, 0], + [126.561667, 37.212222, 0], + [126.674722, 37.2125, 0], + [126.774444, 37.220833, 0], + [126.833333, 37.241667, 0], + [126.833333, 37.29, 0], + [126.704167, 37.2975, 0], + [126.555278, 37.237222, 0] + ] + ] + }, + "properties": { + "name": "시화", + "description": "초경량비행장치 전용 공역", + "type": "0006" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [128.391944, 37.369722, 0], + [128.436111, 37.364722, 0], + [128.469444, 37.402778, 0], + [128.405278, 37.443889, 0], + [128.391944, 37.369722, 0] + ] + ] + }, + "properties": { + "name": "장암산", + "description": "초경량비행장치 전용 공역", + "type": "0006" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [127.723333, 34.987778, 0], + [127.794167, 34.9875, 0], + [127.794722, 35.029167, 0], + [127.723611, 35.029722, 0], + [127.723333, 34.987778, 0] + ] + ] + }, + "properties": { + "name": "하동", + "description": "초경량비행장치 전용 공역", + "type": "0006" + } + } + ] +} diff --git a/src/components/mapDraw/google/DronMarker.js b/src/components/mapDraw/google/DronMarker.js new file mode 100644 index 00000000..baed04aa --- /dev/null +++ b/src/components/mapDraw/google/DronMarker.js @@ -0,0 +1,24 @@ +import React from 'react'; +import { useEffect, useRef, useState } from 'react'; +import InfoBox from 'react-google-maps/lib/components/addons/InfoBox'; +import Marker from 'react-google-maps/lib/components/Marker'; +import OverlayView from 'react-google-maps/lib/components/OverlayView'; +import dronicon from '../../../assets/control/icon/drone.png'; +import { useDispatch, useSelector } from 'react-redux'; +import { ControlGpData } from '../../../modules/control/gp'; +import { StoreState } from '../../../modules'; + +export const DronMarker = props => { + return ( + alert(11111)} + position={{ lat: props.dronInfo.lat, lng: props.dronInfo.lng }} + > + ); +}; diff --git a/src/components/mapDraw/google/GoogleMap.js b/src/components/mapDraw/google/GoogleMap.js new file mode 100644 index 00000000..9c2ba00c --- /dev/null +++ b/src/components/mapDraw/google/GoogleMap.js @@ -0,0 +1,64 @@ +import React, { useEffect, useState } from 'react'; +import { + GoogleMap, + GroundOverlay, + Marker, + Polyline, + withGoogleMap, + withScriptjs +} from 'react-google-maps'; +import { DronMarker } from './DronMarker'; +// import { StoreState } from '../../../modules'; +import { useSelector } from 'react-redux'; +import SearchBox from 'react-google-maps/lib/components/places/SearchBox'; +import InfoWindow from 'react-google-maps/lib/components/InfoWindow'; + +const MapInit = () => { + const { controlGpList } = useSelector(state => state.controlGpState); + const [bounds, setBounds] = useState(null); + + useEffect(() => { + console.log('GoogleMap >>>>>', controlGpList); + }, [controlGpList]); + const onSearchBoxMounted = () => {}; + + const onPlacesChanged = () => {}; + + return ( + <> + +
test
+ + {controlGpList?.map(item => ( + // + + ))} +
+ + ); +}; + +const GoogleMapWrapped = withScriptjs(withGoogleMap(MapInit)); + +export const GoogleCustomMap = () => { + const mapProps = { + key: 'AIzaSyDKCsI8cbzgi4es3xCUIhElUm6NRM73QuI', + url: 'https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=drawing,geometryplaces' + }; + + console.log(`${mapProps.url}&key=${mapProps.key}`); + return ( +
+ } + containerElement={
} + mapElement={
} + /> +
+ ); +}; diff --git a/src/components/mapDraw/naver/NaverMap.js b/src/components/mapDraw/naver/NaverMap.js new file mode 100644 index 00000000..b6c55da7 --- /dev/null +++ b/src/components/mapDraw/naver/NaverMap.js @@ -0,0 +1,107 @@ +import React, { useEffect, useState } from 'react'; +import { useSelector } from 'react-redux'; +import dronicon from '../../../assets/control/icon/drone.png'; +import { DronMarker } from './dron/DronMarker'; +import { DronHistory } from './dron/DronHistory'; + +import NaverMapControl from './NaverMapControl'; +import { NaverMapSearch } from './search/NaverMapSearch'; +import { FeatureAirZone } from './feature/FeatureAirZone'; +import { DrawPath } from './draw/DrawPath'; +import { DrawTest0 } from './draw/DrawTest0'; +import { DrawTest1 } from './draw/DrawTest1'; +import { DrawTest2 } from './draw/DrawTest2'; + +import geoJson from '../geojson/airArea.json'; +import SensorZone from "./sensor/SensorZone"; + +export const NaverCustomMap = () => { + const naver = window.naver; + let map; + + const [isMapLoad, setIsMapLoad] = useState(false); + const [mapObject, setMapObject] = useState(null); + + let arrMarkers = []; // 마커 배열 + let arrPolyline = []; // 폴리라인 배열 + let features = geoJson.features; + + useEffect(() => { + NaverMapInit(); + // console.log(map); + + // console.log(features); + + // setIsMapLoad(true); + }, []); + + useEffect(() => { + // console.log('==============11111==================', mapObject); + }, [mapObject]); + + const removeArrMarkers = arrData => { + arrMarkers = arrData; + }; + + const NaverMapInit = () => { + const mapOptions = { + // center: new naver.maps.LatLng(36.56793936069445, 127.85101412107547), + center: new naver.maps.LatLng(37.445949, 126.673868), + zoom: 13, + zoomControl: true, + mapTypeId: naver.maps.MapTypeId.HYBRID, + zoomControlOptions: { + position: naver.maps.Position.TOP_LEFT, + + style: naver.maps.ZoomControlStyle.SMALL + } + }; + + // map = ; + setMapObject(new naver.maps.Map('map', mapOptions)); + // naver.maps.Event.addListener(map, 'click', function (e) { + // console.log(e); + // }); + + // naver.maps.Event.addListener(map, 'idle', function (e) { + // console.log(e); + // }); + }; + + return ( + <> +
+ {mapObject != null ? ( + <> + {/* */} + + + + {/* */} + + + {/* */} + {/* */} + + {/* */} + {/* */} + {/* */} + + + + ) : null} + + {/* */} + + ); +}; diff --git a/src/components/mapDraw/naver/NaverMapControl.js b/src/components/mapDraw/naver/NaverMapControl.js new file mode 100644 index 00000000..44920f94 --- /dev/null +++ b/src/components/mapDraw/naver/NaverMapControl.js @@ -0,0 +1,31 @@ +import { useEffect } from 'react'; +import { useSelector } from 'react-redux'; + +const NaverMapControl = props => { + const mapControl = useSelector(state => state.controlMapReducer); + + useEffect(() => { + }, [mapControl]); + + //맵타입 변경 + if (mapControl.mapType === 'NORMAL') { + props.map.setMapTypeId(naver.maps.MapTypeId.NORMAL); + } else if (mapControl.mapType === 'TERRAIN') { + props.map.setMapTypeId(naver.maps.MapTypeId.TERRAIN); + } else if (mapControl.mapType === 'HYBRID') { + props.map.setMapTypeId(naver.maps.MapTypeId.HYBRID); + } + + //그리기타입 변경 + // if(mapControl.drawType === 'CIRCLE') { + // console.log("circle") + // } else if(mapControl.drawType === 'LINE') { + // console.log("line") + // } else if(mapControl.drawType === 'POLYGON') { + // console.log("polygon") + // } + + return null; +}; + +export default NaverMapControl; diff --git a/src/components/mapDraw/naver/draw/DrawPath.js b/src/components/mapDraw/naver/draw/DrawPath.js new file mode 100644 index 00000000..49f18f17 --- /dev/null +++ b/src/components/mapDraw/naver/draw/DrawPath.js @@ -0,0 +1,129 @@ +import { useEffect, useState } from "react"; +import { BiCaretLeftCircle } from "react-icons/bi"; +import { useSelector } from "react-redux"; + +export const DrawPath = props => { + const {naver} = props; + const {map} = props; + const {drawType} = useSelector(state => state.controlMapReducer); + + let linePath = ([]); + let circleCenter = ''; + // let events = ([]); + const [eventGroup, setEventGroup] = useState([]); + + const [polylines, setPolylines] = useState([]); + const [circleLayers, setCircleLayers] = useState([]); + + useEffect(() => { + init(); + }, [drawType]); + + useEffect(() => { + }, [eventGroup]); + + useEffect(() => { + moveCircle(); + }, [circleLayers]); + + + + const init = () => { + removeEvent(); + removeLayers(); + } + + const removeEvent = () => { + eventGroup.forEach(prev => naver.maps.Event.removeListener(prev)); + setEventGroup([]); + addEvent(); + } + + const removeLayers = () => { + if(polylines) { + polylines.forEach(prev => prev.setMap(null)); + setPolylines([]); + }; + if(circleLayers) { + circleLayers.forEach(prev => prev.setMap(null)); + setCircleLayers([]); + }; + linePath = []; + // circleCenter = ''; + } + + const addEvent = () => { + let addClick = naver.maps.Event.addListener(map, 'click', function(e) { + if(drawType) { + linePath.push(e.coord); + circleCenter = e.coord; + startDraw(); + } else { + // console.log('1'); + } + }); + + let escDown = naver.maps.Event.addListener(map, 'keydown', function(e) { + const keyboardEvent = e.keyboardEvent, + keyCode = keyboardEvent.keyCode || keyboardEvent.which; + + const ESC = 27; + if(keyCode === ESC) { + keyboardEvent.preventDefault(); + // removeLayers(); + } + }); + setEventGroup(prev => ([...prev, addClick, escDown])); + } + + const startDraw = () => { + if(drawType === 'LINE') { + createPolyline(); + } else if(drawType === 'CIRCLE') { + createCircle(); + } + } + + const createPolyline = () => { + if(linePath.length >= 2) { + const polyline = new naver.maps.Polyline({ + path: linePath, + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 0.5, + map: map + }); + linePath.shift(); + setPolylines(prev => ([...prev, polyline])); + } + } + + const createCircle = () => { + const circle = new naver.maps.Circle({ + center: circleCenter, + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 1, + fillColor: '#0000ff', + fillOpacity: 0.35, + radius: 1000, + clickable: false, + map: map + }); + // circleCenter = ''; + setCircleLayers(prev => ([...prev, circle])); + } + + const moveCircle = () => { + if(circleLayers.length >= 2) { + circleLayers[0].setMap(null); + setCircleLayers(prev => ([prev[circleLayers.length-1]])); + } + // else { + // console.log(circleLayers); + // } + } + + return null; +}; + diff --git a/src/components/mapDraw/naver/draw/DrawTest0.js b/src/components/mapDraw/naver/draw/DrawTest0.js new file mode 100644 index 00000000..ec092735 --- /dev/null +++ b/src/components/mapDraw/naver/draw/DrawTest0.js @@ -0,0 +1,71 @@ +import { useEffect, useState } from "react"; +import { useSelector } from "react-redux"; + + +export const DrawTest0 = props => { + const {naver} = props; + const {map} = props; + + const mapControl = useSelector(state => state.controlMapReducer); + + // const [linePositions, setLinePositions] = useState([]); + const positions = ([]); + const [lineZips, setLineZips] = useState([]); + + useEffect(() => { + }, [mapControl.drawType]); + + + + if(mapControl.drawType === 'LINE') { + naver.maps.Event.addListener(map, 'click', function(e) { + // const position = e.coord; + positions.push(e.coord); + createPolyline(positions); + }) + + // naver.maps.Event.addListener(map, 'dbclick', function(e) { + // console.log("dbclick") + // }) + + naver.maps.Event.addListener(map, 'keydown', function(e) { + const keyboardEvent = e.keyboardEvent, + keyCode = keyboardEvent.keyCode || keyboardEvent.which; + + const ESC = 27; + + if(keyCode === ESC) { + keyboardEvent.preventDefault(); + + // for(var i=0, ii=lineZips.length; i line.setMap(null)); + setLineZips([]); + console.log(lineZips); + + } + }) + } + + const createPolyline = (positions) => { + if(positions.length >= 2) { + const polyline = new naver.maps.Polyline({ + path: [positions[(positions.length)-1], positions[(positions.length)-2]], + strokeWeight: 2, + strokeOpacity: 1, + strokeColor: '#ff0000', + map: map + }) + // polyline.setMap(map); + setLineZips([...lineZips, positions]); + } + } + + const removeLine = () => { + + } + + return null; +} \ No newline at end of file diff --git a/src/components/mapDraw/naver/draw/DrawTest1.js b/src/components/mapDraw/naver/draw/DrawTest1.js new file mode 100644 index 00000000..871576f9 --- /dev/null +++ b/src/components/mapDraw/naver/draw/DrawTest1.js @@ -0,0 +1,157 @@ +import { useEffect, useState } from "react"; +import { BiCaretLeftCircle } from "react-icons/bi"; +import { useSelector } from "react-redux"; + +export const DrawTest1 = props => { + const {naver} = props; + const {map} = props; + const {drawType} = useSelector(state => state.controlMapReducer); + + let linePath = ([]); + let circleCenter = ''; + // let positions = ([]); + // let po = ''; + + const r = 1000; + // const [polylines, setPolylines] = useState([]); + // const [circleLayers, setCircleLayers] = useState(); + let polylines = ([]); + // let circleLayers = (''); + let circleLayers = ([]); + + useEffect(() => { + init(); + }, []); + + useEffect(() => { + remove(); + console.log(drawType) + // init(); + }, [drawType]); + + const event = () => { + let addClick = naver.maps.Event.addListener(map, 'click', function(e) { + if(drawType) { + linePath.push(e.coord); + circleCenter = e.coord + clickDraw(); + } else { + + } + }) + + let escDown = naver.maps.Event.addListener(map, 'keydown', function(e) { + const keyboardEvent = e.keyboardEvent, + keyCode = keyboardEvent.keyCode || keyboardEvent.which; + + const ESC = 27; + + if(keyCode === ESC) { + keyboardEvent.preventDefault(); + remove(); + } + }) + + + } + + + const init = () => { + remove(); + event(); + } + + const clickDraw = () => { + // if(!drawType) { + // alert("path option을 선택해주세요.") + // } else { + // if(drawType === 'LINE') { + // console.log("LINE") + // createPolyline(); + // } else if(drawType === 'CIRCLE') { + // console.log("CIRCLE") + // createCircle(); + // } + // } + if(drawType === 'LINE') { + console.log('1') + createPolyline(); + } else if(drawType === 'CIRCLE') { + createCircle(); + } + } + + const createPolyline = () => { + if(linePath.length >= 2) { + const polyline = new naver.maps.Polyline({ + // path: [positions[positions.length-1], po], + path: linePath, + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 0.5, + map: map + }); + linePath.shift(); + // setPolylines(prev => ([...prev, polyline])); + polylines.push(polyline); + } + } + + // const createCircle = (positions) => { + const createCircle = () => { + if(circleLayers) remove(); + // const circleCenter = positions[0]; + // console.log(circleCenter) + // console.log(po) + // const te = positions[0]; + const circle = new naver.maps.Circle({ + center: circleCenter, + // center: positions[0], + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 1, + fillColor: '#0000ff', + fillOpacity: 0.35, + radius: r, + clickable: false, + map: map + }) + // circleCenter.shift(); + // setCircleLayers(circle); + // circleLayers = circle; + circleLayers.push(circle); + } + + // const reCircle = () => { + // // circle.setMap(null); + // // positions = ([]); + // // circleLayers.forEach(cir => cir.setMap(null)); + // circleLayers.setMap(null); + // // setCircleLayers(); + // circleLayers = ''; + // } + + + const remove = () => { + // debugger; + if(polylines) { + polylines.forEach(poly => poly.setMap(null)); + polylines = ([]); + // console.log("poly remove") + } + if(circleLayers) { + circleLayers.forEach(cir => cir.setMap(null)); + circleLayers = ([]); + // console.log("circle remove") + } + // circleLayers.forEach(cir => cir.setMap(null)); + // circleLayers = ([]); + circleCenter = ''; + linePath = ([]); + // console.log("remove!!") + // setClickable(0); + } + + return null; +}; + diff --git a/src/components/mapDraw/naver/draw/DrawTest2.js b/src/components/mapDraw/naver/draw/DrawTest2.js new file mode 100644 index 00000000..c44dbf87 --- /dev/null +++ b/src/components/mapDraw/naver/draw/DrawTest2.js @@ -0,0 +1,180 @@ +import { useEffect, useState } from "react"; +import { useSelector } from "react-redux"; + + +export const DrawTest2 = props => { + const {naver} = props; + const {map} = props; + let draw = ''; + const {drawType} = useSelector(state => state.controlMapReducer); + + const r = 1000; + let positions = ([]); + const [polyGroup, setPolyGroup] = useState([]); + const [eventGroup, setEventGrouop] = useState([]); + const [circleGroup, setCircleGroup] = useState([]); + + useEffect(() => { + remove2(); + clickEvent(); + }, [drawType]); + + useEffect(() => { + remove(); + }, [polyGroup, eventGroup]); + + useEffect(() => { + // moveCircle(); + remove(); + }, [circleGroup]); + + + const moveCircle = () => { + if(circleGroup) { + circleGroup.forEach(prev => prev.setMap(null)); + } + }; + + const movePoly = () => { + if(polyGroup) { + polyGroup.forEach(prev => prev.setMap(null)); + } + } + + const clickEvent = () => { + console.log("d") + // remove2(); + // drawType = + if(drawType === 'CIRCLE') { + console.log("circle") + } else if(drawType === 'LINE') { + console.log("LINE") + }else if(drawType === 'POLYGON') { + console.log("POLYGON") + } + + addPositions(); + } + + const remove2 = () => { + polyGroup.forEach(poly => poly.setMap(null)); + setPolyGroup([]); + circleGroup.forEach(cir => cir.setMap(null)); + setCircleGroup([]); + eventGroup.forEach(eve => naver.maps.Event.removeListener(eve)); + setEventGrouop([]); + positions = []; + } + + const addPositions = () => { + if(event) naver.maps.Event.removeListener(event); + var event = naver.maps.Event.addListener(map, 'click', function(e) { + debugger; + if(drawType === 'LINE') { + positions.push(e.coord); + createPolyline(positions); + } else if(drawType === 'CIRCLE') { + positions = e.coord; + createCircle(positions); + } + }) + // setEventGrouop(prev => ([...prev, event])); + } + + const createCircle = (positions) => { + moveCircle(); + const circle = new naver.maps.Circle({ + center: positions, + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 1, + fillColor: '#0000ff', + fillOpacity: 0.35, + radius: r, + clickable: false, + map: map + }) + draw = drawType; + setCircleGroup(prev => ([...prev, circle])); + } + + const createPolyline = (positions) => { + if(positions.length >= 2) { + movePoly(); + const polyline = new naver.maps.Polyline({ + // path: [positions[(positions.length)-1], positions[(positions.length)-2]], + path: positions, + strokeColor: '#ff0000', + strokeWeight: 2, + strokeOpacity: 1, + map: map + }) + positions.shift(); + console.log(positions) + draw = drawType; + setPolyGroup(prev => ([...prev, polyline])); + } + + } + + const remove = () => { + if(drawType!=draw) { + naver.maps.Event.addListener(map, 'keydown', function(e) { + const keyboardEvent = e.keyboardEvent, + keyCode = keyboardEvent.keyCode || keyboardEvent.which; + + const ESC = 27; + + if(keyCode === ESC) { + keyboardEvent.preventDefault(); + polyGroup.forEach(poly => poly.setMap(null)); + setPolyGroup([]); + circleGroup.forEach(cir => cir.setMap(null)); + setCircleGroup([]); + // eventGroup.forEach(eve => naver.maps.Event.removeListener(eve)); + // setEventGrouop([]); + positions = []; + // debugger; + } + + + }) + } + } + + // const drawTypeChange = () => { + // remove(); + // draw = drawType; + // } + + // const init = () => { + // // draw = drawType; + // if(draw) { + // var event = naver.maps.Event.addListener(map, 'click', function(e) { + // draw = drawType; + // console.log(drawType, "drawType") + // // remove(draw, event); + // drawTypeChange(); + // // naver.maps.Event.removeListener(event); + // }) + // } + // // remove(event); + // } + + // const remove = (draw, event) => { + // if(draw == drawType) { + // console.log("안지워") + // } else { + // console.log("지워") + // naver.maps.Event.removeListener(event); + // } + // if(positions) naver.maps.Event.removeListener(map, 'click', function(e) { + // console.log(e); + // }); + // naver.maps.removeListener(event); + // } + + + + return null; +} \ No newline at end of file diff --git a/src/components/mapDraw/naver/dron/DronHistory.js b/src/components/mapDraw/naver/dron/DronHistory.js new file mode 100644 index 00000000..f83006e0 --- /dev/null +++ b/src/components/mapDraw/naver/dron/DronHistory.js @@ -0,0 +1,63 @@ +import { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { controlGpHisAction } from '../../../../modules/control/gp'; + +export const DronHistory = props => { + const { controlGpHistory } = useSelector(state => state.controlGpHisState); + const { objectId, isClickObject } = useSelector( + state => state.controlMapReducer + ); + + let naver = props.naver; + let polyline; + let polylinePath = []; + + const dispatch = useDispatch(); + + useEffect(() => { + // console.log('>>>', controlGpHistory); + polylineRemove(); + polylineInit(); + }, [controlGpHistory]); + + useEffect(() => { + if (isClickObject) { + dispatch(controlGpHisAction.request({ id: objectId })); + } else { + polylineRemove(); + } + }, [objectId, isClickObject]); + + const polylineRemove = () => { + if (props.arrPolyline) { + props.arrPolyline.map(item => { + item.setMap(null); + }); + } + }; + const polylineInit = () => { + if (controlGpHistory) { + polyline = new naver.maps.Polyline({ + clickable: false, + strokeColor: '#ff4961', + strokeStyle: 'solid', + strokeOpacity: 5, + strokeWeight: 1.5 + }); + + controlGpHistory.map(item => { + if (item.lat > 0 && item.lng > 0) { + const position = new naver.maps.LatLng(item.lat, item.lng); + polylinePath.push(position); + } + // console.log('>>>>>>>>>>>', item); + }); + + polyline.setPath(polylinePath); + polyline.setMap(props.map); + props.arrPolyline.push(polyline); + } + }; + + return null; +}; diff --git a/src/components/mapDraw/naver/dron/DronMarker.js b/src/components/mapDraw/naver/dron/DronMarker.js new file mode 100644 index 00000000..28b922b1 --- /dev/null +++ b/src/components/mapDraw/naver/dron/DronMarker.js @@ -0,0 +1,158 @@ +import { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import '../../../../assets/css/custom.css'; +import DronIconPulple from '../../../../assets/images/drone-marker-icon-pulple.png'; +import DronIcon from '../../../../assets/images/drone-marker-icon.png'; +import { controlGpDtlAction } from '../../../../modules/control/gp'; +import { objectClickAction } from '../../../../modules/control/map/actions/controlMapActions'; + +export const DronMarker = props => { + const { controlGpList } = useSelector(state => state.controlGpState); + const { objectId, isClickObject } = useSelector( + state => state.controlMapReducer + ); + const dispatch = useDispatch(); + + let naver = props.naver; + + var contentString = ['
dddd', '
'].join(''); + + var infowindow = new naver.maps.InfoWindow({ + content: contentString + }); + + useEffect(() => { + markerInit(); + }, [controlGpList]); + + useEffect(() => { + console.log('>>>>>>>>>>>>>>>>', objectId, isClickObject); + + props.arrMarkers.map(clickMarker => { + if (objectId === clickMarker.id && isClickObject) { + clickMarker.setIcon(DronIconPulple); + } else { + clickMarker.setIcon(DronIcon); + } + }); + // }else{ + + // } + }, [objectId, isClickObject]); + + useEffect(() => { + props.arrMarkers.map(clickMarker => { + if (objectId === clickMarker.id) { + console.log(clickMarker); + props.map.setCenter(clickMarker.getPosition()); + // $('#btn_modal').click(); + props.map.setZoom(13, true); + } + }); + }, [objectId]); + + //마커를 그린다. + const addMarkers = (position, id, controlId) => { + var marker = new naver.maps.Marker({ + position: position, + title: id, + id: id, + controlId: controlId, + icon: { + // content: [ + // '
dddd
', + + // ].join(''), + url: DronIcon, + // scaledSize: new naver.maps.scaledSize(50, 50) + // size: new naver.maps.Size(1000, 1000), + // origin: new naver.maps.Point(0, 0) + // anchor: new naver.maps.Point(25, 25) + } + }); + + marker.setMap(props.map); + + naver.maps.Event.addListener(marker, 'click', function (e) { + handlerDronClick(marker); + }); + + props.arrMarkers.push(marker); + }; + + const handlerDronClick = marker => { + if (marker.getAnimation() != null) { + // marker.setAnimation(null); + // infowindow.close(); + // dispatch(Actions.controlGpHisAction.request(controlGpList)); + } else { + // infowindow.open(props.map, marker); + // marker.setAnimation(naver.maps.Animation.BOUNCE); + } + + // marker.setIcon(DronIconPulple); + // console.log(marker.id); + const markerId = marker.id; + const contorlId = marker.controlId; + console.log('contorlId ::::::::::< ', marker.controlId); + //히스토리 불러오기 + + dispatch(objectClickAction(markerId)); + dispatch(controlGpDtlAction.request(contorlId)); + }; + + //마커를 삭제 한다. + const removeMarkers = marker => { + marker.setMap(null); + }; + + //마커에 위치를 이동한다. + const moveMarkers = (marker, position) => { + // console.log(marker); + marker.setPosition(position); + }; + + //데이터가 없는 마커를 모두 삭제 한다. + const allRemoveMarkers = () => { + if (props.arrMarkers && controlGpList) { + props.arrMarkers.map(marker => { + const isExists = controlGpList.find( + item => item.objectId === marker.id + ); + if (!isExists) { + removeMarkers(marker); + const arrData = props.arrMarkers.filter( + item => item.objectId != marker.id + ); + props.removeArrMarkers(arrData); + } + }); + } + // } + }; + + //마커를 셋팅 한다. + const markerInit = () => { + if (controlGpList) { + allRemoveMarkers(); + controlGpList.map(item => { + const position = new naver.maps.LatLng(item.lat, item.lng); + if (props.arrMarkers) { + const isExists = props.arrMarkers.find( + ele => ele.id === item.objectId + ); + if (isExists) { + moveMarkers(isExists, position); + } else { + // console.log(' ADD >>>', props.arrMarkers); + addMarkers(position, item.objectId, item.controlId); + } + } else { + addMarkers(position, item.objectId, item.controlId); + } + }); + } + }; + + return null; +}; diff --git a/src/components/mapDraw/naver/feature/FeatureAirZone.js b/src/components/mapDraw/naver/feature/FeatureAirZone.js new file mode 100644 index 00000000..854acede --- /dev/null +++ b/src/components/mapDraw/naver/feature/FeatureAirZone.js @@ -0,0 +1,150 @@ +import { useEffect, useState } from 'react'; +import { useSelector } from 'react-redux'; +import '../../../../assets/css/custom.css'; + +export const FeatureAirZone = props => { + const mapControl = useSelector(state => state.controlMapReducer); + let infoWindow; + + useEffect(() => { + // console.log('>>>>>', mapControl); + featureAirZoneInit(); + featureAirEvent(); + }, [mapControl]); + + useEffect(() => { + // console.log(">>>>>>>>" , props.features) + }, []); + + const infowindowOpen = data => { + const content = + '
' + + '
' + + '' + + data.title + + '' + + '
' + + '
' + + '
' + + // '설명' + + '' + + data.description + + '' + + '
' + + // '
' + + // '좌표정보' + + // ''+data.coord+'' + + // '
' + + '
' + + // '' + + '
'; + + infoWindow = new props.naver.maps.InfoWindow({ + class: 'tooltip-test', + content: content, + maxWidth: 200, + backgroundColor: '#283046', //박스안쪽영역 컬러 + // borderColor: '#333', //테두리컬러 + // borderWidth: 3, //테두리 굵기 + anchorSize: new props.naver.maps.Size(30, -10), + anchorSkew: false, + anchorColor: '#283046', + + pixelOffset: new props.naver.maps.Point(20, -20) + }); + + infoWindow.open(props.map, data.coord); + }; + + const featureAirZoneInit = () => { + let arrGeoJson = []; + // props.map.data.removeGeoJson(props.geoJson); + // let geoJson = originGeoJson; + let useGeoJson = { type: 'FeatureCollection' }; + useGeoJson.features = props.features; + + props.map.data.removeGeoJson(useGeoJson); + + props.features.map(item => { + if (item.properties.type === '0001' && mapControl.area0001) { + arrGeoJson.push(item); + } else if (item.properties.type === '0002' && mapControl.area0002) { + arrGeoJson.push(item); + } else if (item.properties.type === '0003' && mapControl.area0003) { + arrGeoJson.push(item); + } else if (item.properties.type === '0004' && mapControl.area0004) { + arrGeoJson.push(item); + } else if (item.properties.type === '0005' && mapControl.area0005) { + arrGeoJson.push(item); + } else if (item.properties.type === '0006' && mapControl.area0006) { + arrGeoJson.push(item); + } + }); + + useGeoJson.features = arrGeoJson; + props.map.data.addGeoJson(useGeoJson); + + props.map.data.setStyle(feature => { + var color; + + //0001 비행금지구역 #FF3648 + //0002 비행제한구역 #FFA1AA + //0003 관제권(공항) #FFA800 + //0004 비행장(군사) #A16B00 + //0005 이착륙장(RC비행장) #AB40FF + //0006 초경량비행장치 #009cad + + // 공역 색상 변경 + const type = feature.getProperty('type'); + if (type === '0001') { + color = '#FF3648'; + } else if (type === '0002') { + color = '#FFA1AA'; + } else if (type === '0003') { + color = '#FFA800'; + } else if (type === '0004') { + color = '#A16B00'; + } else if (type === '0005') { + color = '#AB40FF'; + } else if (type === '0006') { + color = '#009cad'; + } + + return { + fillColor: color, + strokeColor: color, + strokeWeight: 0.7, + icon: null + }; + }); + }; + + const featureAirEvent = () => { + props.map.data.addListener('click', function (e) { + // e.feature.setProperty('isColorful', true); + console.log(e.feature.property_name); + }); + + props.map.data.addListener('mouseover', function (e) { + const data = {}; + data.coord = e.coord; + data.title = e.feature.property_name; + data.description = e.feature.property_description; + props.map.data.overrideStyle(e.feature, { + strokeWeight: 3 + // icon: HOME_PATH +'/img/example/pin_spot.png' + }); + + infowindowOpen(data); + }); + + props.map.data.addListener('mouseout', function (e) { + props.map.data.revertStyle(); + + if (infoWindow) { + infoWindow.close(); + } + }); + }; + return null; +}; diff --git a/src/components/mapDraw/naver/search/NaverMapSearch.js b/src/components/mapDraw/naver/search/NaverMapSearch.js new file mode 100644 index 00000000..b1529328 --- /dev/null +++ b/src/components/mapDraw/naver/search/NaverMapSearch.js @@ -0,0 +1,25 @@ +import { useEffect } from 'react'; + +export const NaverMapSearch = props => { + useEffect(() => { + console.log('>>>>', props.naver.maps.Service); + props.naver.maps.Service.geocode( + { + address: '산곡동' + }, + function (status, response) { + if (status !== naver.maps.Service.Status.OK) { + return alert('Something wrong!'); + } + + var result = response.result, // 검색 결과의 컨테이너 + items = result.items; // 검색 결과의 배열 + console.log(result); + + // do Something + } + ); + }); + + return null; +}; diff --git a/src/components/mapDraw/naver/sensor/SensorZone.js b/src/components/mapDraw/naver/sensor/SensorZone.js new file mode 100644 index 00000000..67fc7b48 --- /dev/null +++ b/src/components/mapDraw/naver/sensor/SensorZone.js @@ -0,0 +1,488 @@ +import React, {useEffect, useState} from 'react'; +import {useSelector} from "react-redux"; + +const SENSOR_RADIUS = '100'; +const SENSOR_RADIUS_DIVISION = '3'; +let lenderCnt = 0; +const SensorZone = (props) => { + const {naver} = props; + // 드론 실시간 정보 + const {controlGpList} = useSelector(state => state.controlGpState); + // 환경지표 타입(dust, co, o3, no2, so2) + const {sensor} = useSelector(state => state.controlMapReducer); + // 센서레이어(환경지표) 관리 + const [circleLayers, setCircleLayers] = useState([]); + const [polilineGroupLayers, setPolilineGroupLayers] = useState({}); + + // console.log('########## SensorZone ###########', lenderCnt, {controlGpList, circleLayer: circleLayers, polilineLayer: polilineGroupLayers}); + + useEffect(() => { + lenderCnt++ + if (!sensor) { + removeSensorLayers(); + } else { + initSensorLayer(); + } + }, [controlGpList, sensor]); + + let infoWindow; + // 센서 레이어 Info + const infowindowOpen = data => { + // console.log('data', data) + const content = ` +
+
+ ${data.title} +
+
+
+
+ ${data.sensor.sensorDust.title}(${data.sensor.sensorDust.text}) + ${data.sensor.sensorDust.value} +
+
+ ${data.sensor.sensorO3.title}(${data.sensor.sensorO3.text}) + ${data.sensor.sensorO3.value} +
+
+ ${data.sensor.sensorNo2.title}(${data.sensor.sensorNo2.text}) + ${data.sensor.sensorNo2.value} +
+
+ ${data.sensor.sensorCo.title}(${data.sensor.sensorCo.text}) + ${data.sensor.sensorCo.value} +
+
+ ${data.sensor.sensorSo2.title}(${data.sensor.sensorSo2.text}) + ${data.sensor.sensorSo2.value} +
+
+
+
+ `; + + infoWindow = new naver.maps.InfoWindow({ + class: 'tooltip-sensor', + content: content, + maxWidth: 300, + backgroundColor: '#283046', //박스안쪽영역 컬러 + // borderColor: '#333', //테두리컬러 + // borderWidth: 3, //테두리 굵기 + anchorSize: new naver.maps.Size(30, -10), + anchorSkew: false, + anchorColor: '#283046', + + pixelOffset: new naver.maps.Point(20, -20) + }); + + infoWindow.open(props.map, data.coord); + }; + // 센서레이어 초기화 + const initSensorLayer = () => { + emtpyLayerRemove(); + if (controlGpList) { + controlGpList.forEach(controlGp => { + const {controlId, lat, lng, objectId} = controlGp; + let color = undefined; + const sensorData = convtSensorData(controlGp); + if (sensorData) { + if (sensor === 'dust') color = sensorData.sensorDust.color; + else if (sensor === 'co') color = sensorData.sensorCo.color; + else if (sensor === 'so2') color = sensorData.sensorSo2.color; + else if (sensor === 'no2') color = sensorData.sensorNo2.color; + else if (sensor === 'o3') color = sensorData.sensorO3.color; + } + + const position = new naver.maps.LatLng(controlGp.lat, controlGp.lng); + + const polilineLayers = polilineGroupLayers[controlId]; + if (polilineLayers) { + // const prevPosition = polilineLayers[0].position; + // if(!prevPosition.equals(position)){ + movePolilineLayers(polilineLayers, position, color); + // } + } else { + addPolilineLayers(controlId, objectId, position, color); + } + + const circleLayer = circleLayers.find(layer => layer.controlId === controlId); + if (circleLayer) moveCircleLayer(circleLayer, position, color, sensorData); + else addCircleLayer(controlId, objectId, position, color, sensorData); + }); + } + } + + // 센서레이어 생성 + const addSensorLayer = (position, id, controlId, color, sensorData) => { + addPolilineLayers(controlId, id, position, color); + addCircleLayer(controlId, id, position, color, sensorData); + } + // Circle 레이어 생성 + const addCircleLayer = (controlId, id, position, color, sensorData) => { + // console.log({controlId, id, position, color, sensorData}) + const circleLayer = new naver.maps.Circle({ + title: id, + id: id, + controlId: controlId, + clickable: true, + center: position, + radius: SENSOR_RADIUS, + // map: props.map, + strokeColor: color, + strokeOpacity: 1, + strokeWeight: 2, + fillColor: color, + fillOpacity: 0.2, + sensorData: sensorData + }) + // Circle 이벤트 주입 + naver.maps.Event.addListener(circleLayer, 'mouseover', function (e) { + const data = {}; + data.coord = e.coord; + data.title = '환경지표'; + data.controlId = e.overlay.controlId; + data.sensor = e.overlay.sensorData; + e.overlay.setOptions({ + strokeWeight: 5, + fillOpacity: 0.5 + }) + infowindowOpen(data); + }); + naver.maps.Event.addListener(circleLayer, 'mouseout', function (e) { + e.overlay.setOptions({ + strokeWeight: 2, + fillOpacity: 0.2 + }) + // props.map.Event.revertStyle(); + if (infoWindow) { + infoWindow.close(); + } + }); + circleLayer.setMap(props.map) + setCircleLayers(prev => ([...prev, circleLayer])); + + } + + const addPolilineLayers = (controlId, id, position, color) => { + // 지도에 적용 및 레이어 관리 추가 + // console.log('addPolilineLayers', controlId) + const polilineLayers = createCircleInGrid(position, id, controlId, color); + polilineLayers.forEach(layer => layer.setMap(props.map)); + setPolilineGroupLayers(prev => ({ + ...prev, + [controlId]: polilineLayers + })); + } + + // 센서레이어 이동 + const moveSensorLayer = (controlId, position, color) => { + const circleLayer = circleLayers.find(layer => layer.controlId === controlId); + moveCircleLayer(circleLayer, position, color); + + const polilineLayers = polilineGroupLayers[controlId]; + movePolilineLayers(polilineLayers, position, color); + } + const moveCircleLayer = (circleLayer, position, color, sensorData) => { + // const circleLayer = circleLayers.find(layer => layer.controlId === controlId); + if (circleLayer) { + circleLayer.sensorData = sensorData; + circleLayer.setOptions({center: position, strokeColor: color, fillColor: color}) + } + } + + const movePolilineLayers = (polilineLayers, position, color) => { + const {controlId, id, position: prevPosition} = polilineLayers[0]; + if (prevPosition.equals(position)) { + if (polilineLayers) { + polilineLayers.forEach(layer => layer.setOptions({strokeColor: color})); + } + } else { + if (polilineLayers) { + polilineLayers.forEach(layer => layer.setMap(null)); + } + const newPolilineLayers = createCircleInGrid(position, id, controlId, color); + newPolilineLayers.forEach(layer => layer.setMap(props.map)); + setPolilineGroupLayers(prev => ({ + ...prev, + [controlId]: newPolilineLayers + })); + } + } + + // 센서레이어 제거 + const removeSensorLayer = (controlId) => { + removeCircleLayer(controlId); + removePolilineLayer(controlId); + } + const removeCircleLayer = (controlId) => { + const idx = circleLayers.findIndex(layer => layer.controlId === controlId); + circleLayers[idx].setMap(null); + setCircleLayers(prev => { + prev.splice(idx, 1); + return prev; + }) + } + const removePolilineLayer = (controlId) => { + const polilineLayers = polilineGroupLayers[controlId]; + if (polilineLayers) polilineLayers.forEach(layer => layer.setMap(null)); + setPolilineGroupLayers(prev => { + delete prev[controlId]; + return prev; + }) + } + // 센서레이어 모두 제거 + const removeSensorLayers = () => { + circleLayers.forEach(layer => layer.setMap(null)); + setCircleLayers([]); + const keys = Object.keys(polilineGroupLayers); + keys.forEach((key) => { + polilineGroupLayers[key].forEach(layer => layer.setMap(null)); + }) + setPolilineGroupLayers({}); + } + + // 레이어관리시 새로운 데이터에 없는 좌표 제거 + const emtpyLayerRemove = () => { + setCircleLayers(prev => { + const remainCircleLayers = prev.filter((circleLayer, i) => { + const controlId = circleLayer.controlId; + const findObj = controlGpList.find(controlGp => controlGp.controlId === controlId); + if (findObj) { + return circleLayer; + } else { + circleLayer.setMap(null); + } + }) + return remainCircleLayers; + }) + setPolilineGroupLayers(prev => { + const keys = Object.keys(prev); + const remainPolilineGroupLayer = {}; + keys.forEach((controlId, i) => { + const findObj = controlGpList.find(controlGp => controlGp.controlId === controlId); + if (findObj) { + remainPolilineGroupLayer[controlId] = prev[controlId]; + } else { + const polilineLayers = prev[controlId]; + polilineLayers.forEach(layer => { + layer.setMap(null); + }) + } + }) + return remainPolilineGroupLayer; + }) + } + + // Circle안에 격자 무늬 생성 + const createCircleInGrid = (position, id, controlId, color) => { + // Circle 레이어 안의 격자무늬 + const polilineLayers = []; + for (let i = 0; i <= SENSOR_RADIUS_DIVISION; i++) { + // 각 사분면 각도 + const diff = 90 / SENSOR_RADIUS_DIVISION; + const angleQuadrant1 = diff * i; + const angleQuadrant2 = 180 - (diff * i); + const angleQuadrant3 = 180 + (diff * i); + const angleQuadrant4 = diff * -i; + // 각 사분면 좌표 + const coord1 = new naver.maps.EPSG3857.getDestinationCoord(position, angleQuadrant1, SENSOR_RADIUS); + const coord2 = new naver.maps.EPSG3857.getDestinationCoord(position, angleQuadrant2, SENSOR_RADIUS); + const coord3 = new naver.maps.EPSG3857.getDestinationCoord(position, angleQuadrant3, SENSOR_RADIUS); + const coord4 = new naver.maps.EPSG3857.getDestinationCoord(position, angleQuadrant4, SENSOR_RADIUS); + const polyline12 = new naver.maps.Polyline({ + id, + position, + controlId, + path: [coord1, coord2], + strokeWeight: 0.8, + // strokeWeight: 2, + strokeOpacity: 1, + strokeColor: color, + strokeStyle: 'shortdash' + }) + polilineLayers.push(polyline12); + const polyline23 = new naver.maps.Polyline({ + id, + position, + controlId, + path: [coord2, coord3], + strokeWeight: 0.8, + // strokeWeight: 2, + strokeOpacity: 1, + strokeColor: color, + strokeStyle: 'shortdash' + }) + polilineLayers.push(polyline23); + const polyline34 = new naver.maps.Polyline({ + id, + position, + controlId, + path: [coord3, coord4], + strokeWeight: 0.8, + // strokeWeight: 2, + strokeOpacity: 1, + strokeColor: color, + strokeStyle: 'shortdash' + }) + polilineLayers.push(polyline34); + const polyline41 = new naver.maps.Polyline({ + id, + position, + controlId, + path: [coord4, coord1], + strokeWeight: 0.8, + // strokeWeight: 2, + strokeOpacity: 1, + strokeColor: color, + strokeStyle: 'shortdash' + }) + polilineLayers.push(polyline41); + } + return polilineLayers; + } + + // 환경지표 필요한 데이터로 변환 + const convtSensorData = (sensorData) => { + const r = { + sensorDust: { + title: '미세먼지', + value: '-', + text: '-', + color: undefined + }, + sensorCo: { + title: '일산화탄소', + value: '-', + text: '-', + color: undefined + }, + sensorSo2: { + title: '아황산가스', + value: '-', + text: '-', + color: undefined + }, + sensorNo2: { + title: '이산화질소', + value: '-', + text: '-', + color: undefined + }, + sensorO3: { + title: '오존', + value: '-', + text: '-', + color: undefined + } + } + + // 정수: 미세먼지 || 소수점 1자리 : 일산화탄소 || 소수점 3자리 : 오존, 이산화질소, 아황산가스 + // 좋음 : 파랑, 보통 : 노랑, 나쁨 : 주황, 매우나쁨 : 빨강 + // 미세먼지 : 좋음(0~30) 보통(31~80) 나쁨(81~150) 매우나쁨(151~) + if (sensorData.sensorDust != undefined && sensorData.sensorDust != null) { + const val = r.sensorDust.value = Math.round(sensorData.sensorDust); + if (val <= 30) { + r.sensorDust.text = '좋음'; + r.sensorDust.color = '#37c9ff'; + } else if (val <= 80) { + r.sensorDust.text = '보통'; + r.sensorDust.color = '#ffff44'; + } else if (val <= 150) { + r.sensorDust.text = '나쁨'; + r.sensorDust.color = '#ffa044'; + } else if (val > 150) { + r.sensorDust.text = '매우나쁨'; + r.sensorDust.color = '#ff5959'; + } else { + r.sensorDust.text = '-'; + r.sensorDust.color = '#a1a1a1'; + } + } + // 일산화탄소 : 좋음(0~2) 보통(2.1~9) 나쁨(9.1~15) 매우나쁨(15.1~) + if (sensorData.sensorCo != undefined && sensorData.sensorCo != null) { + const val = r.sensorCo.value = Math.round(sensorData.sensorCo * 10) / 10; + if (val <= 0.2) { + r.sensorCo.text = '좋음'; + r.sensorCo.color = '#37c9ff'; + } else if (val <= 9) { + r.sensorCo.text = '보통'; + r.sensorCo.color = '#ffff44'; + } else if (val <= 15) { + r.sensorCo.text = '나쁨'; + r.sensorCo.color = '#ffa044'; + } else if (val > 15) { + r.sensorCo.text = '매우나쁨'; + r.sensorCo.color = '#ff5959'; + } else { + r.sensorCo.text = '-'; + r.sensorCo.color = '#a1a1a1'; + } + } + // 아황산가스 : 좋음(0~0.02) 보통(0.021~0.05) 나쁨(0.051~0.15) 매우나쁨 (0.151 ~) + if (sensorData.sensorSo2 != undefined && sensorData.sensorSo2 != null) { + const val = r.sensorSo2.value = Math.round(sensorData.sensorSo2 * 1000) / 1000; + if (val <= 0.02) { + r.sensorSo2.text = '좋음'; + r.sensorSo2.color = '#37c9ff'; + } else if (val <= 0.05) { + r.sensorSo2.text = '보통'; + r.sensorSo2.color = '#ffff44'; + } else if (val <= 0.15) { + r.sensorSo2.text = '나쁨'; + r.sensorSo2.color = '#ffa044'; + } else if (val > 0.15) { + r.sensorSo2.text = '매우나쁨'; + r.sensorSo2.color = '#ff5959'; + } else { + r.sensorSo2.text = '-'; + r.sensorSo2.color = '#a1a1a1'; + } + } + // 이산화질소 : 좋음(0~0.03) 보통(0.031~0.06) 나쁨(0.061~0.2) 매우나쁨(0.201~) + if (sensorData.sensorNo2 != undefined && sensorData.sensorNo2 != null) { + const val = r.sensorNo2.value = Math.round(sensorData.sensorNo2 * 1000) / 1000; + if (val <= 0.03) { + r.sensorNo2.text = '좋음'; + r.sensorNo2.color = '#37c9ff'; + } else if (val <= 0.06) { + r.sensorNo2.text = '보통'; + r.sensorNo2.color = '#ffff44'; + } else if (val <= 0.2) { + r.sensorNo2.text = '나쁨'; + r.sensorNo2.color = '#ffa044'; + } else if (val > 0.2) { + r.sensorNo2.text = '매우나쁨'; + r.sensorNo2.color = '#ff5959'; + } else { + r.sensorNo2.text = '-'; + r.sensorNo2.color = '#a1a1a1'; + } + + } + // 오존 : 좋음(0~0.03) 보통(0.031~0.09) 나쁨(0.091~0.15) 매우나쁨(0.151~) + if (sensorData.sensorO3 != undefined && sensorData.sensorO3 != null) { + const val = r.sensorO3.value = Math.round(sensorData.sensorO3 * 1000) / 1000; + if (val <= 0.03) { + r.sensorO3.text = '좋음'; + r.sensorO3.color = '#37c9ff'; + } else if (val <= 0.09) { + r.sensorO3.text = '보통'; + r.sensorO3.color = '#ffff44'; + } else if (val <= 0.15) { + r.sensorO3.text = '나쁨'; + r.sensorO3.color = '#ffa044'; + } else if (val > 0.15) { + r.sensorO3.text = '매우나쁨'; + r.sensorO3.color = '#ff5959'; + } else { + r.sensorO3.text = '-'; + r.sensorO3.color = '#a1a1a1'; + } + } + return r; + } + + return null; +}; + +export default SensorZone; diff --git a/src/components/mapDraw/nhn/NMap.js b/src/components/mapDraw/nhn/NMap.js new file mode 100644 index 00000000..b093f899 --- /dev/null +++ b/src/components/mapDraw/nhn/NMap.js @@ -0,0 +1,42 @@ +import { useEffect, useState } from 'react'; + +export const NMap = props => { + const naver = window.naver; + + const [mapObject, setMapObject] = useState(null); + + useEffect(() => { + mapInit(); + // console.log(map); + + // console.log(features); + + // setIsMapLoad(true); + }, []); + + const mapInit = () => { + // const mapOptions = { + // center: new naver.maps.LatLng(36.56793936069445, 127.85101412107547), + // // ceneter: new naver.maps.LatLng(37.445949, 126.673868), + // zoom: 15, + // zoomControl: true, + // mapTypeId: naver.maps.MapTypeId.HYBRID, + // zoomControlOptions: { + // position: naver.maps.Position.TOP_LEFT, + + // style: naver.maps.ZoomControlStyle.SMALL + // } + // }; + + // map = ; + props.setMapObject(new naver.maps.Map('map', mapOptions)); + // naver.maps.Event.addListener(map, 'click', function (e) { + // console.log(e); + // }); + + // naver.maps.Event.addListener(map, 'idle', function (e) { + // console.log(e); + // }); + }; + return
; +}; diff --git a/src/components/mapDraw/nhn/NMapMarker.js b/src/components/mapDraw/nhn/NMapMarker.js new file mode 100644 index 00000000..0f41c6de --- /dev/null +++ b/src/components/mapDraw/nhn/NMapMarker.js @@ -0,0 +1,62 @@ +import { useEffect } from 'react'; +import DronIcon from '../../../assets/images//drone-marker-icon.png'; +export const NMapMarker = props => { + const naver = window.naver; + + useEffect(() => { + if (props.selMarker && props.selMarker.setMap) { + props.selMarker.setMap(null); + } + + if (props.data) { + for (let i = 0; i < props.data?.length; i++) { + if (props.data[i].lat > 0 && props.data[i].lon > 0) { + const position = new naver.maps.LatLng( + props.data[i]?.lat, + props.data[i]?.lon + ); + addMarkers(position, props.data[i]?.cntrlId); + + return; + } + } + props.data?.map((item, index) => {}); + } + }, [props.data]); + + useEffect(() => { + // console.log('info>>>:' + props.info.lat); + // console.log(props.selMarker); + + if (props.selMarker && props.selMarker) { + const position = new naver.maps.LatLng(props.info?.lat, props.info?.lon); + props.selMarker?.setPosition(position); + + // moveMarkers(props.selMarker, position); + } + }, [props.info]); + + const addMarkers = (position, id) => { + //이미 지정된 마커 제거 + + var marker = new naver.maps.Marker({ + position: position, + title: id, + id: id, + icon: { + url: DronIcon + } + }); + props.map.setCenter(position); + props.map.setZoom(14); + marker.setMap(props.map); + props.setSelMarker(marker); + }; + + const moveMarkers = (marker, position) => { + // console.log('dddddddddddddddddddd', marker, position); + // marker.setPositon(position); + }; + + return null; +}; diff --git a/src/components/mapDraw/nhn/NMapPolyline.js b/src/components/mapDraw/nhn/NMapPolyline.js new file mode 100644 index 00000000..676e1034 --- /dev/null +++ b/src/components/mapDraw/nhn/NMapPolyline.js @@ -0,0 +1,47 @@ +import { useEffect } from 'react'; + +export const NMapPolyline = props => { + const naver = window.naver; + + // console.log(props); + + let polyline; + let polylinePath = []; + + useEffect(() => { + //기존 폴리라인 삭제 처리 + if (props.selPolyline && props.selPolyline.setMap) { + props.selPolyline.setMap(null); + } + + addPolyline(); + }, [props.data]); + + const addPolyline = () => { + if (props.data) { + polyline = new naver.maps.Polyline({ + clickable: false, + strokeColor: '#ff4961', + strokeStyle: 'solid', + strokeOpacity: 5, + strokeWeight: 1.5 + }); + + props.data.map(item => { + if (item.lat > 0 && item.lon > 0) { + const position = new naver.maps.LatLng(item.lat, item.lon); + polylinePath.push(position); + } + // console.log('>>>>>>>>>>>', item); + }); + + polyline.setPath(polylinePath); + + polyline.setMap(props.map); + props.setSelPolyline(polyline); + // props.arrPolyline.push(polyline); + } + }; + + return null; +}; diff --git a/src/modules/control/map/actions/controlMapActions.ts b/src/modules/control/map/actions/controlMapActions.ts index e12c54b7..d728c382 100644 --- a/src/modules/control/map/actions/controlMapActions.ts +++ b/src/modules/control/map/actions/controlMapActions.ts @@ -2,6 +2,10 @@ export const mapTypeChangeAction = (value: any) => dispatch => dispatch({ type: 'MAP_TYPE_CHANGE', value }); + // draw 옵션 변경 Action +export const drawTypeChangeAction = (value: any) => dispatch => +dispatch({type: 'DRAW_TYPE_CHANGE', value}) + // 드론체 클릭 시 Action export const objectClickAction = (value: any) => dispatch => dispatch({ type: 'OBJECT_CLICK', value }); diff --git a/src/modules/control/map/reducers/controlMapReducer.ts b/src/modules/control/map/reducers/controlMapReducer.ts index 8993e046..a8dac245 100644 --- a/src/modules/control/map/reducers/controlMapReducer.ts +++ b/src/modules/control/map/reducers/controlMapReducer.ts @@ -9,7 +9,9 @@ const initialState = { area0004: true, // 비행장(군사) area0005: true, // 이착륙장(RC비행장) area0006: true, // 초경량비행장치 - sensor: 'dust' + sensor: 'dust', + + drawType: '' }; const controlReducerReducer = (state = initialState, action) => { @@ -67,6 +69,12 @@ const controlReducerReducer = (state = initialState, action) => { break; default: return state; + + case 'DRAW_TYPE_CHANGE': + return { + ...state, + drawType: action.value + }; } }; diff --git a/src/router/routes/index.js b/src/router/routes/index.js index 0096a8a4..8e3ba5f8 100644 --- a/src/router/routes/index.js +++ b/src/router/routes/index.js @@ -78,6 +78,13 @@ const Routes = [ component: lazy(() => import('../../views/control')), layout: 'BlankLayout' }, + + { + path: '/testDraw', + component: lazy(() => import('../../views/testDraw')), + layout: 'BlankLayout' + }, + { path: '/history/record/sample1', component: lazy(() => diff --git a/src/views/testDraw/alarm/ControlAlarmList.js b/src/views/testDraw/alarm/ControlAlarmList.js new file mode 100644 index 00000000..5657552f --- /dev/null +++ b/src/views/testDraw/alarm/ControlAlarmList.js @@ -0,0 +1,66 @@ +import { X } from 'react-feather'; + +const ControlAlarmList = props => { + return ( +
+
+
+

알림 리스트

+ +
+
+
+
+
+
전체 2000건
+
오늘 120건
+
+
+
+
+
+
+
+

알림 목록

+
+
+
+
+
+
통신 장애 알림
+
6월 17일
+
+
+ 통신장애 통신장애 통신장애 통신장애 통신장애 통신장애 통신장애 + 통신장애 통신장애{' '} +
+
+
+
+
+
+
+
+
비행 경로 이탈
+
6월 17일
+
+
+ 비행경로이탈 비행경로이탈 비행경로이탈 비행경로이탈 비행경로이탈 + 비행경로이탈 비행경로이탈 비행경로이탈 비행경로이탈 비행경로이탈 +
+
+
+
+
+
+ ); +}; + +export default ControlAlarmList; diff --git a/src/views/testDraw/alarm/ControlAlarmNotice.js b/src/views/testDraw/alarm/ControlAlarmNotice.js new file mode 100644 index 00000000..deaadee2 --- /dev/null +++ b/src/views/testDraw/alarm/ControlAlarmNotice.js @@ -0,0 +1,45 @@ +import { Bell, ChevronDown, ChevronUp } from "react-feather"; +import { ReactComponent as DroneMenuIcon } from '../../../assets/images/drone_menu_icon.svg'; + +const ControlAlarmNotice = () => { + {/* 알림 위아래 롤링은 구현해주셔야되는데 따른 컴포넌트있으면 그거사용해도됩니다...제가 만들어논거는 45px씩 움직여주면되거든요..저도자세히는모르겠습니다...제이쿼리로만써봐서... */} + return( + +
+ {/*
+
+ +
+
+
+
+ 2021-06-17 12:00:00AVSF123 장애물 + 지역에 접근하였습니다111. +
+
+ 2021-06-30 13:00:00AVSF123 + 비행금지구역에 접근하였습니다. +
+
+ 2021-08-20 14:00:00AVSF123 + 국립공원구역에 접근하였습니다. +
+
+
+
+ + +
+
*/} + +
+ + + ) +} + +export default ControlAlarmNotice; diff --git a/src/views/testDraw/index.js b/src/views/testDraw/index.js new file mode 100644 index 00000000..4a7574b3 --- /dev/null +++ b/src/views/testDraw/index.js @@ -0,0 +1,18 @@ +import React, { useEffect, useState } from 'react'; +import { MapControlDraw } from '../../components/mapDraw/MapControlDraw'; +// import { WebsocketClient } from '../../components/websocket/WebsocketClient'; +import ControlMainDraw from './main/ControlMainDraw'; + +const ControlViewDraw = () => { + return ( +
+
+ +
+ + +
+ ); +}; + +export default ControlViewDraw; diff --git a/src/views/testDraw/main/ControlMainDraw.js b/src/views/testDraw/main/ControlMainDraw.js new file mode 100644 index 00000000..dd48ad74 --- /dev/null +++ b/src/views/testDraw/main/ControlMainDraw.js @@ -0,0 +1,183 @@ +import React, { useEffect, useState } from 'react'; + +import '../../../assets/css/custom.css'; +import logo from '../../../assets/images/pal_logo.png'; + +import { Sun, Map, Bell } from 'react-feather'; + +import { AiOutlinePoweroff } from 'react-icons/ai'; + +import { ReactComponent as DroneMenuIcon } from '../../../assets/images/drone_menu_icon.svg'; + +import ControlAlarmNotice from '../alarm/ControlAlarmNotice'; +import ControlReportList from '../report/ControlReportList'; +import ControlReportDetail from '../report/ControlReportDetail'; +import WeatherList from '../weather/WeatherList'; +import ControlAlarmList from '../alarm/ControlAlarmList'; +import ControlSetting from '../setting/ControlSetting'; +import WebsocketClient from '../../../components/websocket/WebsocketClient'; +import { useDispatch, useSelector } from 'react-redux'; + +import * as Actions from '../../../modules/account/login/actions/authAction'; + +import { + ButtonGroup, + Button, + Badge, + CustomInput +} from 'reactstrap' + +import { + drawTypeChangeAction +} from '../../../modules/control/map/actions/controlMapActions'; + +const ControlMainDraw = () => { + const dispatch = useDispatch(); + + const { isClickObject } = useSelector(state => state.controlMapReducer); + + const [oepnReportList, setOpenReportList] = useState(false); + const [openReportDetail, setOpenReportDetail] = useState(false); + const [openWeatherList, setOpenWeatherList] = useState(false); + + const [openAlarmList, setOpenAlarmList] = useState(false); + + const [openSetting, setOpenSetting] = useState(false); + + const mapControl = useSelector(state => state.controlMapReducer); + + const openMenu = val => { + if (val === 'reportList') { + setOpenReportList(true); + setOpenReportDetail(false); + setOpenWeatherList(false); + setOpenAlarmList(false); + } else if (val === 'weatherList') { + setOpenReportList(false); + setOpenReportDetail(false); + setOpenWeatherList(true); + setOpenAlarmList(false); + } else if (val === 'alarmList') { + setOpenReportList(false); + setOpenReportDetail(false); + setOpenWeatherList(false); + setOpenAlarmList(true); + } + }; + + const openReportDetailParam = val => { + console.log(val); + setOpenReportDetail(true); + }; + + const handlerLogout = () => { + dispatch(Actions.logout.request()); + }; + + const handlerDrawType = val => { + dispatch(drawTypeChangeAction(val)); + }; + + return ( + <> + + +
+

+ + PAL +

+
    +
  • + +
  • +
+ + {/* pathDraw Test */} +
    +
  • + handlerDrawType('CIRCLE')} + value='CIRCLE' + /> + handlerDrawType('LINE')} + value='LINE' + />
    + handlerDrawType('')} + value='X' + /> +
  • +
+ +
    +
  • + +
  • + +
+
+ + {oepnReportList ? ( + + ) : ( +
+ )} + {isClickObject ? ( + + ) : ( +
+ )} + {openWeatherList ? ( + + ) : ( +
+ )} + + {openAlarmList ? ( + + ) : ( +
+ )} + + {openSetting ? ( +
+ +
+ +
+
+ ) : ( +
+ +
+
+ )} + + ); +}; + +export default ControlMainDraw; diff --git a/src/views/testDraw/menu/ControlMenuLeft.js b/src/views/testDraw/menu/ControlMenuLeft.js new file mode 100644 index 00000000..eceb1231 --- /dev/null +++ b/src/views/testDraw/menu/ControlMenuLeft.js @@ -0,0 +1,10 @@ + +import React, { useEffect, useState } from 'react'; + +const ControlMenuLeft = () => { + return( + <> + ) +} + +export default ControlMenuLeft(); \ No newline at end of file diff --git a/src/views/testDraw/report/ControlReportDetail.js b/src/views/testDraw/report/ControlReportDetail.js new file mode 100644 index 00000000..0417f08c --- /dev/null +++ b/src/views/testDraw/report/ControlReportDetail.js @@ -0,0 +1,219 @@ +import moment from 'moment'; +import React from 'react'; +import { X } from 'react-feather'; +import { useDispatch, useSelector } from 'react-redux'; +import drone_img from '../../../assets/images/drone.jpg'; +import drone_yellow from '../../../assets/images/drone_yellow.png'; +import { IMG_PATH } from '../../../configs/constants'; +import { objectUnClickAction } from '../../../modules/control/map/actions/controlMapActions'; +import { + GET_ARCTFT_TYPE_CD, + GET_WGHT_TYPE_CD +} from '../../../utility/CondeUtil'; + +const ControlReportDetail = props => { + const dispatch = useDispatch(); + + const { controlGpDetail, controlDetail } = useSelector( + state => state.controlGpDtlState + ); + + // useEffect(() => { + // // console.log(controlGpDetail); + // }, [controlGpDetail]); + + const handlerClose = () => { + // console.log('================'); + dispatch(objectUnClickAction()); + }; + + const nullMessage = val => { + if (val) { + return val; + } else { + return '-'; + } + }; + + return ( +
+
+
+

드론 상세정보

+ +
+
+
+ + {controlDetail?.arcrftModelNm + ? controlDetail?.arcrftModelNm + : controlGpDetail?.objectId} +
+
+ {controlDetail?.imageUrl ? ( + + ) : ( + + )} +
+
+
+
+
제작번호
+
+ {nullMessage(controlDetail?.prdctNum)} +
+
+
+
식별번호
+
+ {controlGpDetail?.objectId} +
+
+
+
중량
+
+ {GET_WGHT_TYPE_CD(controlDetail?.wghtTypeCd)} +
+
+
+
종류
+
+ {GET_ARCTFT_TYPE_CD(controlDetail?.arcrftTypeCd)} +
+
+
+
배터리 잔량
+
+ {controlGpDetail?.betteryLevel} % +
+
+
+
배터리 전압
+
+ {controlGpDetail?.betteryVoltage} volt +
+
+
+
+
+
+
+
+

비행정보

+
+
+
+
+
+
시작위치
+
+ {nullMessage(controlDetail?.stAreaNm)} +
+
+
+
시작시간
+
+ {moment( + controlGpDetail?.controlStartDt, + 'YYYYMMDDHHmmss' + ).format('MM-DD HH:mm:ss')} +
+
+ {/*
+
현재위치
+
+ 인천광역시 부평구 안남로 272 +
+
*/} +
+
속도
+
+ {controlGpDetail?.speed} {controlGpDetail?.speedType} +
+
+
+
고도
+
+ {controlGpDetail?.elev} {controlGpDetail?.elevType} +
+
+
+
좌표
+
+ {controlGpDetail?.lat} , {controlGpDetail?.lng} +
+
+
+
비행거리
+
+ {nullMessage(controlGpDetail?.moveDistance)}{' '} + {controlGpDetail?.moveDistanceType} +
+
+
+
헤딩 방위각
+
+ {controlGpDetail?.heading} ° +
+
+
+
상태
+
+ {nullMessage(controlGpDetail?.dronStatus)} +
+
+
+
위치정보 수신 시간
+
+ {' '} + {moment( + controlGpDetail?.serverRcvDt, + 'YYYYMMDDHHmmss' + ).format('MM-DD HH:mm:ss')} +
+
+
+
+
+
+
+
+

운영자 정보

+
+
+
+
+ {/*
+
소속기관
+
팔네트웍스
+
*/} +
+
담당자 이름
+
+ {' '} + {nullMessage(controlDetail?.ownerNm)} +
+
+
+
담당자 연락처
+
+ {nullMessage(controlDetail?.hpno)} +
+
+
+
+
+
+
+ ); +}; + +export default ControlReportDetail; diff --git a/src/views/testDraw/report/ControlReportList.js b/src/views/testDraw/report/ControlReportList.js new file mode 100644 index 00000000..38455511 --- /dev/null +++ b/src/views/testDraw/report/ControlReportList.js @@ -0,0 +1,115 @@ +import moment from 'moment'; +import React, { useEffect, useState } from 'react'; +import { Search, X } from 'react-feather'; +import { useDispatch, useSelector } from 'react-redux'; +import { Badge, Button, Input, InputGroup } from 'reactstrap'; +import { controlGpDtlAction } from '../../../modules/control/gp'; +import { objectClickAction } from '../../../modules/control/map/actions/controlMapActions'; + +const ControlReportList = props => { + const { controlGpList } = useSelector(state => state.controlGpState); + const [filterId, setFilterId] = useState(''); + + const dispatch = useDispatch(); + + useEffect(() => { + // console.log('>>>>', filterId); + controlGpList; + }, [controlGpList]); + + const handlerDetail = (objectId, cntrlId) => { + dispatch(objectClickAction(objectId)); + dispatch(controlGpDtlAction.request(cntrlId)); + }; + + // useEffect(() => {}, [filterId]); + + return ( +
+
+
+

드론 비행 현황 정보{filterId}

+ +
+
+ + setFilterId(`${e.target.value}`)} + /> + + +
+
+
+
+

드론 현황

+ + {controlGpList ? controlGpList.length : 0} 대 비행중 + +
+ + {controlGpList?.map(item => { + // console.log(item); + + if (item.objectId && item.objectId.indexOf(filterId) != -1) { + console.log(item); + return ( +
handlerDetail(item.objectId, item.controlId)} + key={item.objectId} + > +
+
+
식별번호
+
{item.objectId}
+
+
+
이륙 위치
+
-
+
+
+
이륙 시간
+
+ {moment(item.controlStartDt, 'YYYYMMDDHHmmss').format( + 'MM-DD HH:mm:ss' + )} +
+
+
+
속도(고도)
+
+ {item.speed ? item.speed : '-'}{' '} + {item.speed ? item.speedType : ''}  ( + {item.elev ? item.elev : '-'}{' '} + {item.elev ? item.elevType : ''}) +
+
+
+
상태
+
+ {item.dronStatus ? item.dronStatus : '-'} +
+
+
+
+ ); + } + })} +
+
+ ); +}; + +export default ControlReportList; diff --git a/src/views/testDraw/setting/ControlSetting.js b/src/views/testDraw/setting/ControlSetting.js new file mode 100644 index 00000000..23b4518e --- /dev/null +++ b/src/views/testDraw/setting/ControlSetting.js @@ -0,0 +1,244 @@ +import React, { useEffect, useState } from 'react'; +import { Search } from 'react-feather'; +import { BiBuildings, BiGridAlt } from 'react-icons/bi'; +import { CgTrees } from 'react-icons/cg'; +import { VscRadioTower } from 'react-icons/vsc'; +import { useDispatch, useSelector } from 'react-redux'; +import { + Button, + InputGroup, + ButtonGroup, + InputGroupAddon, + Input, + CustomInput +} from 'reactstrap'; +import { + areaClickAction, environmentClickAction, + mapTypeChangeAction, sensorClickAction, drawTypeChangeAction +} from '../../../modules/control/map/actions/controlMapActions'; + +const ControlSetting = props => { + const dispatch = useDispatch(); + + const mapControl = useSelector(state => state.controlMapReducer); + + // console.log('111111111111111'); + // useEffect(() => { + // console.log('111111111111111'); + // }, []); + useEffect(() => { + console.log('>>>>', mapControl); + }, [mapControl]); + + const handlerMapType = val => { + dispatch(mapTypeChangeAction(val)); + }; + + const handlerAreaClick = val => { + dispatch(areaClickAction(val)); + }; + + // const handlerDrawType = val => { + // dispatch(drawTypeChangeAction(val)); + // }; + + const handlerSensorClick = (val, isChecked) => { + if(isChecked){ + dispatch(sensorClickAction(val)); + } else { + dispatch(sensorClickAction('')); + } + }; + + + + return ( +
+ {/*
+
+

flight path option

+
+
+ + + + + +
+
*/} + +
+
+

지도유형

+ {/* */} +
+
+ + + + + +
+
+ +
+
+

공역 표출 정보

+
+
+
+
+
+
+ 비행금지구역 +
+
+ handlerAreaClick('0001')} + className='custom-control-primary' + type='switch' + id='test01' + name='test01' + inline + defaultChecked={mapControl.area0001} + /> +
+
+
+
+ 비행제한구역 +
+
+ handlerAreaClick('0002')} + className='custom-control-primary' + type='switch' + id='test02' + name='test02' + inline + defaultChecked={mapControl.area0002} + /> +
+
+
+
+ 관제권(공항) +
+
+ handlerAreaClick('0003')} + className='custom-control-primary' + type='switch' + id='test03' + name='test03' + inline + defaultChecked={mapControl.area0003} + /> +
+
+
+
+ 비행장(군사) +
+
+ handlerAreaClick('0004')} + className='custom-control-primary' + type='switch' + id='test04' + name='test04' + inline + defaultChecked={mapControl.area0004} + /> +
+
+
+
+ 이착륙장 +
+
+ handlerAreaClick('0005')} + className='custom-control-primary' + type='switch' + id='test05' + name='test05' + inline + defaultChecked={mapControl.area0005} + /> +
+
+
+
+ + 초경량비행장치공역 +
+
+ handlerAreaClick('0006')} + className='custom-control-primary' + type='switch' + id='test06' + name='test06' + inline + defaultChecked={mapControl.area0006} + /> +
+
+
+
+
+
+ + {/*
+
+ 미세먼지(DUST) +
+
+ handlerSensorClick('dust', e.target.checked)} + className='custom-control-primary' + type='switch' + id='sensorDust' + name='sensorDust' + inline + checked={mapControl.sensor === 'dust'} + // defaultChecked={mapControl.sensor === 'dust'} + /> +
+
*/} + +
+ ); +}; +export default ControlSetting; diff --git a/src/views/testDraw/weather/WeatherList.js b/src/views/testDraw/weather/WeatherList.js new file mode 100644 index 00000000..554558e1 --- /dev/null +++ b/src/views/testDraw/weather/WeatherList.js @@ -0,0 +1,233 @@ +import React, { useEffect, useState } from 'react'; +import { + CloudDrizzle, + CloudLightning, + Navigation2, + X, + Search, + Compass, + Sun, + Cloud, + CloudRain, + CloudSnow +} from 'react-feather'; +import { Button, InputGroup, InputGroupAddon, Input, Table } from 'reactstrap'; + +const WeatherList = props => { + const [clickTab, setClickTab] = useState(true); + + return ( +
+
+
+

날씨 상세정보

+ +
+
+ + + + +
+
+
+
+
+
+
+ 검색하신 지역의 날씨 정보입니다. + + 인천광역시 부평구 안남로 272 + +
+ {/* 탭메뉴or탭내용 활성화 active */} +
+
    + {clickTab ? ( + <> +
  • 오늘
  • + +
  • setClickTab(false)}> + 주간 +
  • + + ) : ( + <> +
  • setClickTab(true)}> + 오늘 +
  • +
  • 주간
  • + + )} +
+
+ {clickTab ? ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
시각날씨기온풍향풍속
10시 + + 27℃ + + 2m/s
12시 + + 30℃ + + 3m/s
14시 + + 28℃ + + 4m/s
16시 + + 27℃ + + 7m/s
18시 + + 25℃ + + 2m/s
20시 + + 26℃ + + 2m/s
+
+ ) : ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
날짜날씨기온
06.19.(토) 오전 + + 최저 27℃
06.19.(토) 오후 + + 30℃
06.20.(일) 오전 + + 30℃
06.20.(일) 오후 + + 30℃
06.21.(월) 오전 + + 30℃
06.21.(월) 오후 + + 30℃
06.22.(화) 오전 + + 30℃
06.2.(화) 오후 + + 30℃
+
+ )} +
+
+
+
+
+ ); +}; +export default WeatherList;