From 4c99822a384c3f48f39c3e49464104afde585b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?junh=5Feee=28=EC=9D=B4=EC=A4=80=ED=9D=AC=29?= Date: Mon, 11 Sep 2023 17:01:36 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EA=B3=84=ED=9A=8D=EC=84=9C?= =?UTF-8?q?=20=EA=B3=B5=EC=97=AD=20=EC=A2=8C=ED=91=9C=20=EC=A7=80=EC=A0=95?= =?UTF-8?q?=20=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basis/flight/plan/FlightPlanAreaMap.js | 7 +-- .../map/naver/draw/FlightPlanDraw.js | 47 ++++++++++++++++++- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/components/basis/flight/plan/FlightPlanAreaMap.js b/src/components/basis/flight/plan/FlightPlanAreaMap.js index 6b9b880..a7d23ac 100644 --- a/src/components/basis/flight/plan/FlightPlanAreaMap.js +++ b/src/components/basis/flight/plan/FlightPlanAreaMap.js @@ -189,9 +189,9 @@ const FlightPlanAreaMap = props => { } }; const mapp = new naver.maps.Map('map', mapOptions); - naver.maps.Event.addListener(mapp, 'idle', function () { - // console.log(dragSize); - }); + // naver.maps.Event.addListener(mapp, 'idle', function () { + // // console.log(dragSize); + // }); naver.maps.Event.addListener(mapp, 'zoom_changed', function () { let radius = 17920; for (let i = 6; i < 22; i++) { @@ -215,6 +215,7 @@ const FlightPlanAreaMap = props => { const handleCoordinates = areaInfo => { const initAreaList = initFlightBas.initDetail.areaList.concat(); + const coordList = []; // radius = 10; diff --git a/src/components/map/naver/draw/FlightPlanDraw.js b/src/components/map/naver/draw/FlightPlanDraw.js index 68a30c9..6d5019f 100644 --- a/src/components/map/naver/draw/FlightPlanDraw.js +++ b/src/components/map/naver/draw/FlightPlanDraw.js @@ -19,6 +19,10 @@ export const FlightPlanDraw_init = props => { const setDragCircle = props.setDragCircle; const [pastClickEve, setClickEve] = useState(); + + //공역 클릭 가능하도록 하기 위해 만든 임시 이벤트 변수 + const [pastGeoJsonClickEve, setGeoJsonClickEve] = useState(); + const [pastMarker, setMarker] = useState([]); const [figure, setFigure] = useState(); @@ -55,6 +59,13 @@ export const FlightPlanDraw_init = props => { rightclickEve: '' }; + //공역 클릭 가능하도록 하기 위해 만든 임시 이벤트 변수 + let geoJsonEve = { + clickEve: '', + mousedownEve: '', + rightclickEve: '' + }; + let dragCircle = []; let dragCircleEve = []; @@ -135,6 +146,7 @@ export const FlightPlanDraw_init = props => { if (pastCircle.length != 0) { pastCircle.forEach(prev => prev.setMap(null)); naver.maps.Event.removeListener(pastClickEve); + naver.maps.Event.removeListener(pastGeoJsonClickEve); setCircle([]); } @@ -150,31 +162,48 @@ export const FlightPlanDraw_init = props => { const startMode = mode => { if (!mode) return; - if (pastClickEve) { + if (pastClickEve || pastGeoJsonClickEve) { naver.maps.Event.removeListener(pastClickEve); + naver.maps.Event.removeListener(pastGeoJsonClickEve); } if (mode === 'LINE') { Eve.clickEve = naver.maps.Event.addListener(map, 'click', function (e) { onClickPolyline(e); }); + geoJsonEve.clickEve = map.data.addListener('click', function (e) { + onClickPolyline(e); + }); setClickEve(Eve.clickEve); + setGeoJsonClickEve(geoJsonEve.clickEve); } else if (mode === 'POLYGON') { Eve.clickEve = naver.maps.Event.addListener(map, 'click', function (e) { onClickPolygon(e); }); + geoJsonEve.clickEve = map.data.addListener('click', function (e) { + onClickPolygon(e); + }); setClickEve(Eve.clickEve); + setGeoJsonClickEve(geoJsonEve.clickEve); } else if (mode === 'CIRCLE') { Eve.clickEve = naver.maps.Event.addListener(map, 'click', function (e) { onClickCircle(e); }); + geoJsonEve.clickEve = map.data.addListener('click', function (e) { + onClickCircle(e); + }); setClickEve(Eve.clickEve); + setGeoJsonClickEve(geoJsonEve.clickEve); } }; const removeListener = () => { naver.maps.Event.removeListener(Eve.clickEve); + naver.maps.Event.removeListener(geoJsonEve.clickEve); + naver.maps.Event.removeListener(pastClickEve); + naver.maps.Event.removeListener(pastGeoJsonClickEve); setClickEve(); + setGeoJsonClickEve(); naver.maps.Event.removeListener(Eve.mousedownEve); naver.maps.Event.removeListener(Eve.rightclickEve); @@ -273,6 +302,12 @@ export const FlightPlanDraw_init = props => { finishDraw(); } ); + geoJsonEve.rightclickEve = map.data.addListener( + 'rightclick', + function () { + finishDraw(); + } + ); $(document).on('mousemove.measure', function (e) { onMouseMovePolyline(e); }); @@ -333,6 +368,12 @@ export const FlightPlanDraw_init = props => { finishDraw(); } ); + geoJsonEve.rightclickEve = map.data.addListener( + 'rightclick', + function () { + finishDraw(); + } + ); $(document).on('mousemove.measure', function (e) { onMouseMovePolygon(e); }); @@ -510,7 +551,11 @@ export const FlightPlanDraw_init = props => { Eve.clickEve = naver.maps.Event.addListener(map, 'click', function (e) { onClickCircle(e); }); + geoJsonEve.clickEve = map.data.addListener('click', function (e) { + onClickCircle(e); + }); setClickEve(Eve.clickEve); + setGeoJsonClickEve(geoJsonEve.clickEve); // setCircle(prev => [...prev, circle]); setAreaInfo('');