|
|
@ -47,6 +47,10 @@ export const LaancDrawControl = props => { |
|
|
|
// if (areaType !== drawType) drawInit();
|
|
|
|
// if (areaType !== drawType) drawInit();
|
|
|
|
}, [mapControl.drawType]); |
|
|
|
}, [mapControl.drawType]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// useEffect(() => {
|
|
|
|
|
|
|
|
// console.log(props.areaCoordList[0], '-----------');
|
|
|
|
|
|
|
|
// }, [props.areaCoordList]);
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
if (mapObject) { |
|
|
|
if (mapObject) { |
|
|
|
mapObject.on('draw.update', handlerUpdateSetting); |
|
|
|
mapObject.on('draw.update', handlerUpdateSetting); |
|
|
@ -128,55 +132,60 @@ export const LaancDrawControl = props => { |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 도형 그리기 완료 시
|
|
|
|
// 도형 그리기 완료 시
|
|
|
|
|
|
|
|
// drawType을 바꾸면 종료처리가 돼서 이게 실행되는 듯
|
|
|
|
const handlerDblClickFinish = state => { |
|
|
|
const handlerDblClickFinish = state => { |
|
|
|
console.log('dblclick'); |
|
|
|
if (state.currentVertexPosition !== 0) { |
|
|
|
const mode = handlerReturnMode(drawObj.getMode()); |
|
|
|
console.log('dblclick'); |
|
|
|
|
|
|
|
const mode = handlerReturnMode(drawObj.getMode()); |
|
|
|
|
|
|
|
|
|
|
|
if (mode === 'CIRCLE') { |
|
|
|
if (mode === 'CIRCLE') { |
|
|
|
const obj = state.polygon; |
|
|
|
const obj = state.polygon; |
|
|
|
const data = { |
|
|
|
const data = { |
|
|
|
coord: obj.properties.center, |
|
|
|
coord: obj.properties.center, |
|
|
|
radius: obj.properties.radiusInKm * 1000, |
|
|
|
radius: obj.properties.radiusInKm * 1000, |
|
|
|
id: obj.id |
|
|
|
id: obj.id |
|
|
|
}; |
|
|
|
}; |
|
|
|
drawObj.setFeatureProperty(data.id, 'id', mode); |
|
|
|
drawObj.setFeatureProperty(data.id, 'id', mode); |
|
|
|
handlerCreateOneMarker([0, -10], data.coord, data.radius, data.id); |
|
|
|
handlerCreateOneMarker([0, -10], data.coord, data.radius, data.id); |
|
|
|
handlerAbnormalityCheck(data, mode); |
|
|
|
handlerAbnormalityCheck(data, mode); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
const obj = state[mode.toLowerCase()]; |
|
|
|
const obj = state[mode.toLowerCase()]; |
|
|
|
const length = state.currentVertexPosition; |
|
|
|
const length = state.currentVertexPosition; |
|
|
|
drawObj.setFeatureProperty(obj.id, 'id', mode); |
|
|
|
if (obj.coordinates.length > 0) { |
|
|
|
drawObj.setFeatureProperty(obj.id, 'inAirArea', inAirArea); |
|
|
|
drawObj?.setFeatureProperty(obj.id, 'id', mode); |
|
|
|
|
|
|
|
drawObj?.setFeatureProperty(obj.id, 'inAirArea', inAirArea); |
|
|
|
// dbl클릭이 click 두번으로 인식돼서, 마지막 값을 없애버리기로 함
|
|
|
|
|
|
|
|
if (mode === 'LINE') { |
|
|
|
// dbl클릭이 click 두번으로 인식돼서, 마지막 값을 없애버리기로 함
|
|
|
|
obj.coordinates.splice(-1); |
|
|
|
if (mode === 'LINE') { |
|
|
|
if (length < 1) { |
|
|
|
obj.coordinates.splice(-1); |
|
|
|
setAlertModal({ |
|
|
|
if (length < 1) { |
|
|
|
isOpen: true, |
|
|
|
setAlertModal({ |
|
|
|
title: '좌표 최소 개수', |
|
|
|
isOpen: true, |
|
|
|
desc: '좌표를 두 개 점으로 이어주세요.' |
|
|
|
title: '좌표 최소 개수', |
|
|
|
}); |
|
|
|
desc: '좌표를 두 개 점으로 이어주세요.' |
|
|
|
handlerRemoveError(obj.id); |
|
|
|
}); |
|
|
|
} |
|
|
|
handlerRemoveError(obj.id); |
|
|
|
} else if (mode === 'POLYGON') { |
|
|
|
} |
|
|
|
obj.coordinates[0].splice(-1); |
|
|
|
} else if (mode === 'POLYGON') { |
|
|
|
|
|
|
|
obj.coordinates[0].splice(-1); |
|
|
|
if (length < 2) { |
|
|
|
|
|
|
|
setAlertModal({ |
|
|
|
if (length < 2) { |
|
|
|
isOpen: true, |
|
|
|
setAlertModal({ |
|
|
|
title: '좌표 최소 개수', |
|
|
|
isOpen: true, |
|
|
|
desc: '좌표를 세 개 점으로 이어주세요.' |
|
|
|
title: '좌표 최소 개수', |
|
|
|
}); |
|
|
|
desc: '좌표를 세 개 점으로 이어주세요.' |
|
|
|
handlerRemoveError(obj.id); |
|
|
|
}); |
|
|
|
|
|
|
|
handlerRemoveError(obj.id); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const data = { |
|
|
|
|
|
|
|
coord: obj.coordinates, |
|
|
|
|
|
|
|
id: obj.id, |
|
|
|
|
|
|
|
inAirArea: inAirArea |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
handlerAbnormalityCheck(data, mode); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
const data = { |
|
|
|
|
|
|
|
coord: obj.coordinates, |
|
|
|
|
|
|
|
id: obj.id, |
|
|
|
|
|
|
|
inAirArea: inAirArea |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
handlerAbnormalityCheck(data, mode); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -448,7 +457,7 @@ export const LaancDrawControl = props => { |
|
|
|
const drawInit = () => { |
|
|
|
const drawInit = () => { |
|
|
|
const mode = mapControl.drawType; |
|
|
|
const mode = mapControl.drawType; |
|
|
|
if (mode !== 'DONE') { |
|
|
|
if (mode !== 'DONE') { |
|
|
|
console.log(props.addData.isAddable, '-----'); |
|
|
|
// console.log(props.addData.isAddable, '-----');
|
|
|
|
if (!props.addData.isAddable) { |
|
|
|
if (!props.addData.isAddable) { |
|
|
|
drawObj.deleteAll(); |
|
|
|
drawObj.deleteAll(); |
|
|
|
handlerRemoveAllMarker(); |
|
|
|
handlerRemoveAllMarker(); |
|
|
|