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); } //포인트 생성