|
|
@ -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,28 +207,19 @@ 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 maine = mapObject.queryRenderedFeatures(point, { |
|
|
|
const point = mapObject.project(formatCoords[i]); |
|
|
|
layers: ['maine'] |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
if (maine.length > 0) { |
|
|
|
|
|
|
|
if (maine[0].properties.description.includes('김포공항 비행불가')) { |
|
|
|
|
|
|
|
elev2.push(maine[0]); |
|
|
|
|
|
|
|
isBreak = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
for (let i = 0; i < coords.length; i++) { |
|
|
|
|
|
|
|
const point = mapObject.project(coords[i]); |
|
|
|
|
|
|
|
const maine = mapObject.queryRenderedFeatures(point, { |
|
|
|
const maine = mapObject.queryRenderedFeatures(point, { |
|
|
|
layers: ['maine'] |
|
|
|
layers: ['maine'] |
|
|
|
}); |
|
|
|
}); |
|
|
@ -234,11 +232,11 @@ 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) { |
|
|
|