|
|
|
@ -3,7 +3,6 @@ import { InfoModal } from '../../../modal/InfoModal';
|
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
|
import { |
|
|
|
|
CalculateDistance, |
|
|
|
|
handlerGetCircleCoord, |
|
|
|
|
handlerGetHtmlContent, |
|
|
|
|
handlerGetMidPoint, |
|
|
|
|
handlerRemoveAllMarker, |
|
|
|
@ -13,6 +12,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(); |
|
|
|
@ -21,12 +21,9 @@ export const LaancDrawControl = props => {
|
|
|
|
|
const drawObj = props.drawObj; |
|
|
|
|
const mapObject = props.mapObject; |
|
|
|
|
|
|
|
|
|
// const [drawObjId, setDrawObjId] = useState();
|
|
|
|
|
const [bufferId, setBufferId] = useState(); |
|
|
|
|
|
|
|
|
|
const [isDrawDone, setIsDrawDone] = useState(false); |
|
|
|
|
// const [inAirArea, setInAirArea] = useState(false);
|
|
|
|
|
let inAirArea = 'N'; |
|
|
|
|
|
|
|
|
|
const [alertModal, setAlertModal] = useState({ |
|
|
|
|
isOpen: false, |
|
|
|
@ -79,15 +76,6 @@ export const LaancDrawControl = props => {
|
|
|
|
|
const handlerCustomOnClick = (state, e) => { |
|
|
|
|
console.log('click'); |
|
|
|
|
|
|
|
|
|
const features = mapObject.queryRenderedFeatures(e.point, { |
|
|
|
|
layers: ['maine'] |
|
|
|
|
}); |
|
|
|
|
if (features.length > 0) { |
|
|
|
|
inAirArea = 'Y'; |
|
|
|
|
// setInAirArea(true);
|
|
|
|
|
// console.log(features, '>>>>>관제권?');
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const type = handlerReturnMode(drawObj.getMode()); |
|
|
|
|
const obj = state[type?.toLowerCase()]; |
|
|
|
|
|
|
|
|
@ -135,8 +123,6 @@ export const LaancDrawControl = props => {
|
|
|
|
|
radius: obj.properties.radiusInKm * 1000, |
|
|
|
|
id: obj.id |
|
|
|
|
}; |
|
|
|
|
// 임시 데이터(circle 관제권 유무 판별 여기서 해줘야 함)
|
|
|
|
|
drawObj.setFeatureProperty(obj.id, 'inAirArea', 'N'); |
|
|
|
|
|
|
|
|
|
drawObj.setFeatureProperty(data.id, 'id', mode); |
|
|
|
|
handlerCreateOneMarker([0, -10], data.coord, data.radius, data.id); |
|
|
|
@ -146,7 +132,6 @@ export const LaancDrawControl = props => {
|
|
|
|
|
const length = state.currentVertexPosition; |
|
|
|
|
if (obj.coordinates.length > 0) { |
|
|
|
|
drawObj?.setFeatureProperty(obj.id, 'id', mode); |
|
|
|
|
drawObj?.setFeatureProperty(obj.id, 'inAirArea', inAirArea); |
|
|
|
|
|
|
|
|
|
// dbl클릭이 click 두번으로 인식돼서, 마지막 값을 없애버리기로 함
|
|
|
|
|
if (mode === 'LINE') { |
|
|
|
@ -186,8 +171,7 @@ export const LaancDrawControl = props => {
|
|
|
|
|
} |
|
|
|
|
const data = { |
|
|
|
|
coord: obj.coordinates, |
|
|
|
|
id: obj.id, |
|
|
|
|
inAirArea: inAirArea |
|
|
|
|
id: obj.id |
|
|
|
|
}; |
|
|
|
|
handlerAbnormalityCheck(data, mode); |
|
|
|
|
} |
|
|
|
@ -251,7 +235,7 @@ export const LaancDrawControl = props => {
|
|
|
|
|
? data.coord |
|
|
|
|
: null; |
|
|
|
|
|
|
|
|
|
const datas = { coord: initCoord, mode: mode, inAirArea: inAirArea }; |
|
|
|
|
const datas = { coord: initCoord, mode: mode }; |
|
|
|
|
handlerSaveAreaInfo(datas); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -321,8 +305,7 @@ export const LaancDrawControl = props => {
|
|
|
|
|
const areaInfo = { |
|
|
|
|
coordinates: [], |
|
|
|
|
bufferZone: 0, |
|
|
|
|
areaType: '', |
|
|
|
|
inAirArea: 'N' |
|
|
|
|
areaType: '' |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const bufferZone = data.mode === 'POLYGON' ? 0 : 100; |
|
|
|
@ -342,7 +325,6 @@ export const LaancDrawControl = props => {
|
|
|
|
|
|
|
|
|
|
areaInfo.coordinates = prePath; |
|
|
|
|
areaInfo.bufferZone = bufferZone; |
|
|
|
|
areaInfo.inAirArea = inAirArea; |
|
|
|
|
if (areaInfo.areaType === 'CIRCLE') { |
|
|
|
|
const obj = drawObj.getAll().features; |
|
|
|
|
const feature = obj.filter(o => o.properties.id === 'CIRCLE'); |
|
|
|
@ -354,12 +336,13 @@ export const LaancDrawControl = props => {
|
|
|
|
|
areaInfo.coordinates = [point]; |
|
|
|
|
areaInfo.bufferZone = feature[0].properties.radiusInKm * 1000; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
props.handlerCoordinates(areaInfo); |
|
|
|
|
setIsDrawDone(true); |
|
|
|
|
|
|
|
|
|
const viewCoordObj = drawObj |
|
|
|
|
.getAll() |
|
|
|
|
.features.filter(o => o.properties?.inAirArea); |
|
|
|
|
.features.filter(o => o.properties.id !== 'BUFFER'); |
|
|
|
|
|
|
|
|
|
props.setViewCoordObj(viewCoordObj); |
|
|
|
|
|
|
|
|
|