From 9cc3a1384330af3f75f7a8e8a42445017d7d2c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?junh=5Feee=28=EC=9D=B4=EC=A4=80=ED=9D=AC=29?= Date: Tue, 26 Sep 2023 15:25:45 +0900 Subject: [PATCH] =?UTF-8?q?laanc=20=EB=B9=84=ED=96=89=EA=B8=88=EC=A7=80?= =?UTF-8?q?=EA=B5=AC=EC=97=AD=20=EC=95=8C=EB=9F=BF=20=EB=A1=A4=EB=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/laanc/FlightArea.js | 41 +++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/views/laanc/FlightArea.js b/src/views/laanc/FlightArea.js index e830f9e..f97adc9 100644 --- a/src/views/laanc/FlightArea.js +++ b/src/views/laanc/FlightArea.js @@ -1,6 +1,7 @@ import 'mapbox-gl/dist/mapbox-gl.css'; import mapboxgl from 'mapbox-gl'; import threebox from 'threebox-plugin'; +import * as turf from '@turf/turf'; import MapboxLanguage from '@mapbox/mapbox-gl-language'; import { MAPBOX_TOKEN } from '../../configs/constants'; import { useEffect, useRef, useState } from 'react'; @@ -144,20 +145,20 @@ export default function FlightArea({ centeredModal, setCenteredModal, page }) { }; }); - const { data } = await axios.post( - `api/bas/flight/airspace/contains`, - resultAreaDetail - ); + // const { data } = await axios.post( + // `api/bas/flight/airspace/contains`, + // resultAreaDetail + // ); - if (data.result) { - setAlertModal({ - isOpen: true, - title: '우회 여부 확인', - desc: '경로상에 비행 금지된 구역이 있습니다.\n우회하여 경로 설정해주시기 바랍니다.' - }); + // if (data.result) { + // setAlertModal({ + // isOpen: true, + // title: '우회 여부 확인', + // desc: '경로상에 비행 금지된 구역이 있습니다.\n우회하여 경로 설정해주시기 바랍니다.' + // }); - return false; - } + // return false; + // } setCenteredModal(false); dispatch(AREA_DETAIL_LIST_SAVE(resultAreaDetail)); @@ -257,6 +258,8 @@ export default function FlightArea({ centeredModal, setCenteredModal, page }) { circle.geometry.coordinates = circleCoords; previewGeo.features.push(circle); + + mapObject.setCenter(circle.properties.center); } else { const lineString = InitFeature('LineString', 'polyline'); const bufferPolyline = InitFeature('LineString', 'buffer'); @@ -277,9 +280,23 @@ export default function FlightArea({ centeredModal, setCenteredModal, page }) { bufferPolyline.geometry.coordinates = bufferPaths; previewGeo.features.push(bufferPolyline); } + + const lineCoord = lineString.geometry.coordinates.concat(); + lineCoord.push(lineString.geometry.coordinates[0]); + + const obj = turf.polygon([lineCoord]); + const centerOfMass = turf.centerOfMass(obj); + mapObject.setCenter(centerOfMass.geometry.coordinates); } else if (areas.areaType === 'POLYGON') { polygon.geometry.coordinates = [paths]; previewGeo.features.push(polygon); + + const polygonCoord = polygon.geometry.coordinates[0].concat(); + polygonCoord.push(polygon.geometry.coordinates[0][0]); + + const obj = turf.polygon([polygonCoord]); + const centerOfMass = turf.centerOfMass(obj); + mapObject.setCenter(centerOfMass.geometry.coordinates); } //포인트 생성