Browse Source

laanc 비행구역 elev값 redux 바로 저장

pull/2/head
junh_eee(이준희) 11 months ago
parent
commit
28e006b685
  1. 9
      src/components/laanc/map/LaancAreaMap.js
  2. 32
      src/components/laanc/map/LaancDrawControl.js
  3. 4
      src/modules/laanc/sagas/laancSagas.ts

9
src/components/laanc/map/LaancAreaMap.js

@ -47,7 +47,6 @@ export default function LaancAreaMap({
const dispatch = useDispatch(); const dispatch = useDispatch();
const mapControl = useSelector(state => state.controlMapReducer); const mapControl = useSelector(state => state.controlMapReducer);
const { areaCoordList } = useSelector(state => state.flightState); const { areaCoordList } = useSelector(state => state.flightState);
const { inAirArea } = useSelector(state => state.flightState);
const [mapObject, setMapObject] = useState(); const [mapObject, setMapObject] = useState();
const [isMapLoad, setIsMapLoad] = useState(false); const [isMapLoad, setIsMapLoad] = useState(false);
@ -82,10 +81,6 @@ export default function LaancAreaMap({
setMode(mapControl.drawType); setMode(mapControl.drawType);
}, [mapControl.drawType]); }, [mapControl.drawType]);
// useEffect(() => {
// console.log(inAirArea, '--inairARea');
// }, [inAirArea]);
useEffect(() => { useEffect(() => {
if (areaCoordList && mapObject) { if (areaCoordList && mapObject) {
if ( if (
@ -301,11 +296,11 @@ export default function LaancAreaMap({
const handlerCoordinates = areaInfo => { const handlerCoordinates = areaInfo => {
const areaList = handlerAreaInfoToAreaList(areaInfo); const areaList = handlerAreaInfoToAreaList(areaInfo);
// dispatch(LaancAction.LAANC_ALTITUDE.request(areaList));
dispatch(LaancAction.LAANC_VALID_AREA.request(areaList));
if (areaInfo.areaType === 'LINE' || areaInfo.areaType === 'POLYGON') { if (areaInfo.areaType === 'LINE' || areaInfo.areaType === 'POLYGON') {
dispatch(FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaList)); dispatch(FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaList));
} else { } else {
dispatch(LaancAction.LAANC_ALTITUDE.request(areaList));
dispatch(LaancAction.LAANC_VALID_AREA.request(areaList));
setMapAreaCoordList(areaList); setMapAreaCoordList(areaList);
} }
}; };

32
src/components/laanc/map/LaancDrawControl.js

@ -14,11 +14,14 @@ import { drawTypeChangeAction } from '../../../modules/control/map/actions/contr
import MapboxDraw from '@mapbox/mapbox-gl-draw'; import MapboxDraw from '@mapbox/mapbox-gl-draw';
import { CircleMode } from 'mapbox-gl-draw-circle'; import { CircleMode } from 'mapbox-gl-draw-circle';
import axios from '../../../modules/utils/customAxiosUtil'; import axios from '../../../modules/utils/customAxiosUtil';
import * as LaancAction from '../../../modules/laanc/actions/laancActions';
export const LaancDrawControl = props => { export const LaancDrawControl = props => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const mapControl = useSelector(state => state.controlMapReducer); const mapControl = useSelector(state => state.controlMapReducer);
const { laancElev } = useSelector(state => state.laancState);
const drawObj = props.drawObj; const drawObj = props.drawObj;
const mapObject = props.mapObject; const mapObject = props.mapObject;
@ -32,6 +35,10 @@ export const LaancDrawControl = props => {
desc: '' desc: ''
}); });
// useEffect(() => {
// console.log(laancElev, '----elev');
// }, [laancElev]);
useEffect(() => { useEffect(() => {
const areaType = props.areaCoordList[0].areaType; const areaType = props.areaCoordList[0].areaType;
const drawType = mapControl.drawType; const drawType = mapControl.drawType;
@ -200,38 +207,28 @@ export const LaancDrawControl = props => {
const areaInfo = handlerSettingAreaInfo(coords, mode); const areaInfo = handlerSettingAreaInfo(coords, mode);
const areaList = props.handlerAreaInfoToAreaList(areaInfo); const areaList = props.handlerAreaInfoToAreaList(areaInfo);
let isBreak = false; let isBreak = false;
// 비행금지 구역 체크 // 비행금지 구역 체크
console.log('unableElev'); console.log('unableElev');
try { try {
const elev1 = await axios.post(`api/bas/laanc/valid/elev`, areaList); const elev1 = await axios.post(`api/bas/laanc/valid/elev`, areaList);
dispatch(LaancAction.LAANC_ALTITUDE.success(elev1.data));
const elev2 = []; const elev2 = [];
if (mode === 'CIRCLE') { const formatCoords = mode === 'CIRCLE' ? [coords] : coords;
const point = mapObject.project(coords); for (let i = 0; i < formatCoords.length; i++) {
const point = mapObject.project(formatCoords[i]);
const maine = mapObject.queryRenderedFeatures(point, { const maine = mapObject.queryRenderedFeatures(point, {
layers: ['maine'] layers: ['maine']
}); });
if (maine.length > 0) { if (maine.length > 0) {
if (maine[0].properties.description.includes('김포공항 비행불가')) { if (maine[0].properties.description.includes('김포공항 비행불가')) {
elev2.push(maine[0]); elev2.push(maine[0]);
isBreak = true; isBreak = true;
} break;
}
} else {
for (let i = 0; i < coords.length; i++) {
const point = mapObject.project(coords[i]);
const maine = mapObject.queryRenderedFeatures(point, {
layers: ['maine']
});
if (maine.length > 0) {
if (maine[0].properties.description.includes('김포공항 비행불가')) {
elev2.push(maine[0]);
isBreak = true;
break;
}
} }
} }
} }
@ -239,6 +236,7 @@ export const LaancDrawControl = props => {
if (elev1.data[0] === 0 || elev2.length > 0) isBreak = true; if (elev1.data[0] === 0 || elev2.length > 0) isBreak = true;
} catch (error) { } catch (error) {
alert('에러 발생'); alert('에러 발생');
return;
} }
if (isBreak) { if (isBreak) {

4
src/modules/laanc/sagas/laancSagas.ts

@ -120,8 +120,8 @@ function* postValidElevSaga(
) { ) {
try { try {
const deail = action.payload; const deail = action.payload;
const res = yield call(Apis.laancApi.postValidElev, deail); // const res = yield call(Apis.laancApi.postValidElev, deail);
yield put(Actions.LAANC_ALTITUDE.success(res.data)); // yield put(Actions.LAANC_ALTITUDE.success(detail));
} catch (error) { } catch (error) {
yield put( yield put(
MessageActions.IS_ERROR({ MessageActions.IS_ERROR({

Loading…
Cancel
Save