From 37fc28ac07b52d689541536711d7f6e1ba0ad378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Tue, 9 Aug 2022 17:00:39 +0900 Subject: [PATCH] =?UTF-8?q?[=EB=B9=84=ED=96=89=EA=B4=80=EC=A0=9C]=20?= =?UTF-8?q?=EB=B9=84=EC=A0=95=EC=83=81=20=EC=83=81=ED=99=A9=20=EC=8B=9D?= =?UTF-8?q?=EB=B3=84=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/map/naver/NaverMap.js | 13 -------- src/components/map/naver/dron/DronMarker.js | 33 +++++++++++++++++-- src/components/map/naver/dron/DronPlan.js | 22 ++++++------- .../control/gp/models/controlGpModel.ts | 1 + src/modules/control/gp/sagas/controlGpSaga.ts | 16 ++------- 5 files changed, 46 insertions(+), 39 deletions(-) diff --git a/src/components/map/naver/NaverMap.js b/src/components/map/naver/NaverMap.js index 1445e08..cd171f4 100644 --- a/src/components/map/naver/NaverMap.js +++ b/src/components/map/naver/NaverMap.js @@ -36,19 +36,6 @@ export const NaverCustomMap = () => { useEffect(() => { }, [mapObject]); - // useEffect(() => { - // if (controlGpContains) { - // if(!controlGpContains.contains) { - // toast.info(, { - // autoClose: 3000, - // hideProgressBar: true, - // position: toast.POSITION.BOTTOM_RIGHT, - // }) - // } - - // } - // }, [controlGpContains]) - const NaverMapInit = () => { const mapOptions = { center: new naver.maps.LatLng(36.56793936069445, 127.85101412107547), diff --git a/src/components/map/naver/dron/DronMarker.js b/src/components/map/naver/dron/DronMarker.js index 4bdb826..3ab76be 100644 --- a/src/components/map/naver/dron/DronMarker.js +++ b/src/components/map/naver/dron/DronMarker.js @@ -5,6 +5,8 @@ import DronIconPulple from '../../../../assets/images/drone-marker-icon-pulple.p import DronIcon from '../../../../assets/images/drone-marker-icon.png'; import { controlGpDtlAction, controlGpHisAction, controlDbHisAction, controlGpFlightPlanAction } from '../../../../modules/control/gp'; import { objectClickAction, objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions'; +import { toast } from 'react-toastify'; +import DronToast from './DronToast'; export const DronMarker = props => { const dispatch = useDispatch(); @@ -25,11 +27,38 @@ export const DronMarker = props => { useEffect(() => { markerInit(); + + if (controlGpList) { + controlGpList.forEach(gps => { + if (!gps.controlWarnCd) { + // gps marker가 지도상에 표출된 이후 시점부터 toast 표출 + const marker = arrMarkers.find(marker => marker.id === gps.objectId); + + if(marker) { + toast.info( + + , { + autoClose: 3000, + hideProgressBar: true, + position: toast.POSITION.BOTTOM_RIGHT, + onClick: props => { + if(marker) handlerDronClick(marker); + } + } + ) + } + } + }) + } + }, [controlGpList]); useEffect(() => { arrMarkers.map(clickMarker => { - if (objectId === clickMarker.id && isClickObject) { + if (objectId === clickMarker.controlId && isClickObject) { // clickMarker.setIcon(DronIconPulple); clickMarker.setIcon({ url: DronIconPulple, @@ -48,7 +77,7 @@ export const DronMarker = props => { useEffect(() => { arrMarkers.map(clickMarker => { - if (objectId === clickMarker.id) { + if (objectId === clickMarker.controlId) { props.map.setCenter(clickMarker.getPosition()); props.map.setZoom(13, true); } diff --git a/src/components/map/naver/dron/DronPlan.js b/src/components/map/naver/dron/DronPlan.js index 2a28aae..bb8e03d 100644 --- a/src/components/map/naver/dron/DronPlan.js +++ b/src/components/map/naver/dron/DronPlan.js @@ -49,18 +49,18 @@ const DronPlan = ({ naver, map }) => { } }, [controlGpList]) - useEffect(() => { - if (controlGpContains) { - if(!controlGpContains.contains) { - toast.info(, { - autoClose: 3000, - hideProgressBar: true, - position: toast.POSITION.BOTTOM_RIGHT, - }) - } + // useEffect(() => { + // if (controlGpContains) { + // if(!controlGpContains.contains) { + // toast.info(, { + // autoClose: 3000, + // hideProgressBar: true, + // position: toast.POSITION.BOTTOM_RIGHT, + // }) + // } - } - }, [controlGpContains]) + // } + // }, [controlGpContains]) /* 비행 구역 그리기. */ diff --git a/src/modules/control/gp/models/controlGpModel.ts b/src/modules/control/gp/models/controlGpModel.ts index 7b2caca..d07262e 100644 --- a/src/modules/control/gp/models/controlGpModel.ts +++ b/src/modules/control/gp/models/controlGpModel.ts @@ -88,6 +88,7 @@ export interface ControlGpData { dronStatus: string; controlStartDt: string; heading: number; + controlWarnCd: boolean; } export interface ControlGroupAuthData { diff --git a/src/modules/control/gp/sagas/controlGpSaga.ts b/src/modules/control/gp/sagas/controlGpSaga.ts index eea77a0..560cd0c 100644 --- a/src/modules/control/gp/sagas/controlGpSaga.ts +++ b/src/modules/control/gp/sagas/controlGpSaga.ts @@ -34,7 +34,9 @@ function* getControlGpSaga( gpsData.filter(gps => auth.createUserId && auth.idntfNum === gps.objectId); } }); - } + } + + console.log('gps ', gpsData); yield put( Actions.controlGpAction.success({ @@ -67,18 +69,6 @@ function* getControlGpSaga( yield put(Actions.controlGpHisAction.success(history)); } - - // 비행구역 contains check - if(controlGpFltPlanList) { - const containsRQ = { - idntfNum: detailData.objectId, - lat: detailData.lat, - lon: detailData.lng, - planList: controlGpFltPlanList - } - - yield put(Actions.controlGpFlightPlanWarnAction.request(containsRQ)); - } } } catch (error) { yield put(Actions.controlGpAction.failure(error));