|
|
|
@ -13,6 +13,7 @@ import {
|
|
|
|
|
import { drawTypeChangeAction } from '../../../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
import MapboxDraw from '@mapbox/mapbox-gl-draw'; |
|
|
|
|
import { CircleMode } from 'mapbox-gl-draw-circle'; |
|
|
|
|
import axios from '../../../../modules/utils/customAxiosUtil'; |
|
|
|
|
|
|
|
|
|
export const LaancDrawControl = props => { |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
@ -235,11 +236,8 @@ export const LaancDrawControl = props => {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 모든 비정상상황 체크
|
|
|
|
|
const handlerAbnormalityCheck = (data, mode) => { |
|
|
|
|
const isBreak1 = handlerIsSpecialFlight(data, mode); |
|
|
|
|
const isBreak2 = handlerIsUnableArea(data, mode); |
|
|
|
|
if (isBreak1) return; |
|
|
|
|
if (isBreak2) return; |
|
|
|
|
const handlerAbnormalityCheck = async (data, mode) => { |
|
|
|
|
console.log('비정상체크'); |
|
|
|
|
|
|
|
|
|
const initCoord = |
|
|
|
|
mode === 'LINE' |
|
|
|
@ -251,7 +249,53 @@ export const LaancDrawControl = props => {
|
|
|
|
|
: null; |
|
|
|
|
|
|
|
|
|
const datas = { coord: initCoord, mode: mode }; |
|
|
|
|
handlerSaveAreaInfo(datas); |
|
|
|
|
const areaInfo = handlerSettingAreaInfo(datas); |
|
|
|
|
|
|
|
|
|
const areaList = props.handlerAreaInfoToAreaList(areaInfo); |
|
|
|
|
|
|
|
|
|
const isBreak1 = handlerIsSpecialFlight(data, mode); |
|
|
|
|
const isBreak2 = handlerIsUnableArea(data, mode); |
|
|
|
|
if (isBreak1 || isBreak2) return; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
console.log('unableElev'); |
|
|
|
|
const result = await axios.post(`api/bas/laanc/valid/elev`, areaList); |
|
|
|
|
|
|
|
|
|
if (result.data[0] === 0) { |
|
|
|
|
props.setModal({ |
|
|
|
|
title: '비행 불가 지역', |
|
|
|
|
desc: ( |
|
|
|
|
<> |
|
|
|
|
설정하신 비행구역 중 허용고도가 0m인 구역이 있습니다. |
|
|
|
|
<br /> |
|
|
|
|
비행구역 설정 시 허용고도를 다시 확인해주시기 바랍니다. |
|
|
|
|
</> |
|
|
|
|
), |
|
|
|
|
isOpen: true |
|
|
|
|
}); |
|
|
|
|
handlerRemoveError(data.id); |
|
|
|
|
return; |
|
|
|
|
} else { |
|
|
|
|
props.handlerSaveCheck(true); |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
alert('에러 발생'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
props.handlerCoordinates(areaInfo); |
|
|
|
|
setIsDrawDone(true); |
|
|
|
|
|
|
|
|
|
const viewCoordObj = drawObj |
|
|
|
|
.getAll() |
|
|
|
|
.features.filter(o => o.properties.id !== 'BUFFER'); |
|
|
|
|
|
|
|
|
|
props.setViewCoordObj(viewCoordObj); |
|
|
|
|
|
|
|
|
|
if (viewCoordObj.length > 19) { |
|
|
|
|
props.handlerAddChange('overAdd', true); |
|
|
|
|
} else { |
|
|
|
|
props.handlerAddChange('isViewAdd', true); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 비가시권 검사
|
|
|
|
@ -374,12 +418,12 @@ export const LaancDrawControl = props => {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// areaInfo 셋팅
|
|
|
|
|
const handlerSaveAreaInfo = data => { |
|
|
|
|
const handlerSettingAreaInfo = data => { |
|
|
|
|
if (!data.coord || !data.mode) { |
|
|
|
|
alert('에러 발생. 다시 시도해 주세요.'); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
console.log('saveAreaInfo'); |
|
|
|
|
console.log('settingeAreaInfo'); |
|
|
|
|
|
|
|
|
|
const areaInfo = { |
|
|
|
|
coordinates: [], |
|
|
|
@ -416,20 +460,21 @@ export const LaancDrawControl = props => {
|
|
|
|
|
areaInfo.bufferZone = feature[0].properties.radiusInKm * 1000; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
props.handlerCoordinates(areaInfo); |
|
|
|
|
setIsDrawDone(true); |
|
|
|
|
return areaInfo; |
|
|
|
|
// props.handlerCoordinates(areaInfo);
|
|
|
|
|
// setIsDrawDone(true);
|
|
|
|
|
|
|
|
|
|
const viewCoordObj = drawObj |
|
|
|
|
.getAll() |
|
|
|
|
.features.filter(o => o.properties.id !== 'BUFFER'); |
|
|
|
|
// const viewCoordObj = drawObj
|
|
|
|
|
// .getAll()
|
|
|
|
|
// .features.filter(o => o.properties.id !== 'BUFFER');
|
|
|
|
|
|
|
|
|
|
props.setViewCoordObj(viewCoordObj); |
|
|
|
|
// props.setViewCoordObj(viewCoordObj);
|
|
|
|
|
|
|
|
|
|
if (viewCoordObj.length > 19) { |
|
|
|
|
props.handlerAddChange('overAdd', true); |
|
|
|
|
} else { |
|
|
|
|
props.handlerAddChange('isViewAdd', true); |
|
|
|
|
} |
|
|
|
|
// if (viewCoordObj.length > 19) {
|
|
|
|
|
// props.handlerAddChange('overAdd', true);
|
|
|
|
|
// } else {
|
|
|
|
|
// props.handlerAddChange('isViewAdd', true);
|
|
|
|
|
// }
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 두 좌표배열이 완전히 일치하는지 판단
|
|
|
|
|