Browse Source

[비행 관제] 데이터 히스토리 버그 수정

pull/2/head
노승철 2 years ago
parent
commit
a5f45373be
  1. 36
      src/components/map/naver/dron/DronHistory.js
  2. 17
      src/modules/control/gp/sagas/controlGpSaga.ts

36
src/components/map/naver/dron/DronHistory.js

@ -1,12 +1,12 @@
import { useEffect } from 'react'; import { object } from 'prop-types';
import { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { controlGpHisAction } from '../../../../modules/control/gp'; import { controlGpHisAction } from '../../../../modules/control/gp';
export const DronHistory = props => { export const DronHistory = props => {
const { controlGpHistory } = useSelector(state => state.controlGpHisState); const { controlGpHistory } = useSelector(state => state.controlGpHisState);
const { objectId, isClickObject } = useSelector( const { controlGpList } = useSelector(state => state.controlGpState);
state => state.controlMapReducer const { objectId, isClickObject } = useSelector(state => state.controlMapReducer);
);
let naver = props.naver; let naver = props.naver;
let polyline; let polyline;
@ -15,7 +15,25 @@ export const DronHistory = props => {
const dispatch = useDispatch(); const dispatch = useDispatch();
useEffect(() => { useEffect(() => {
polylineInit(); if(objectId && isClickObject) {
const gps = controlGpList.find((gps) => gps.controlId === objectId)
if(gps) {
const addHistory = {
objectId: gps.objectId,
lat: gps.lat,
lng: gps.lng
}
const history = [...controlGpHistory, addHistory];
polylineInit(history);
}
}
}, [controlGpList]);
useEffect(() => {
polylineInit(controlGpHistory)
}, [controlGpHistory]); }, [controlGpHistory]);
useEffect(() => { useEffect(() => {
@ -27,15 +45,14 @@ export const DronHistory = props => {
}, [objectId, isClickObject]); }, [objectId, isClickObject]);
const polylineRemove = () => { const polylineRemove = () => {
// console.log(props.arrPolyline);
if (props.arrPolyline) { if (props.arrPolyline) {
props.arrPolyline.map(item => { props.arrPolyline.map(item => {
item.setMap(null); item.setMap(null);
}); });
} }
}; };
const polylineInit = () => { const polylineInit = (history) => {
if (controlGpHistory) { if (history) {
polyline = new naver.maps.Polyline({ polyline = new naver.maps.Polyline({
clickable: false, clickable: false,
strokeColor: '#ff4961', strokeColor: '#ff4961',
@ -44,12 +61,11 @@ export const DronHistory = props => {
strokeWeight: 1.5 strokeWeight: 1.5
}); });
controlGpHistory.map(item => { history.map(item => {
if (item.lat > 0 && item.lng > 0) { if (item.lat > 0 && item.lng > 0) {
const position = new naver.maps.LatLng(item.lat, item.lng); const position = new naver.maps.LatLng(item.lat, item.lng);
polylinePath.push(position); polylinePath.push(position);
} }
// console.log('>>>>>>>>>>>', item);
}); });
polyline.setPath(polylinePath); polyline.setPath(polylinePath);

17
src/modules/control/gp/sagas/controlGpSaga.ts

@ -6,6 +6,7 @@ import * as Actions from '../actions/controlGpAction';
import { controlGpApi } from '../apis/controlGpApi'; import { controlGpApi } from '../apis/controlGpApi';
import decode from 'jwt-decode'; import decode from 'jwt-decode';
import { ControlGpData } from '../models/controlGpModel'; import { ControlGpData } from '../models/controlGpModel';
import { detail } from '../../../analysis/history/actions/analysisHistoryAction';
function* getControlGpSaga( function* getControlGpSaga(
action: ActionType<typeof Actions.controlGpAction.request> action: ActionType<typeof Actions.controlGpAction.request>
@ -35,7 +36,7 @@ function* getControlGpSaga(
}); });
} }
console.log('gps>>>> ', data); // console.log('gps>>>> ', gpsData);
yield put( yield put(
Actions.controlGpAction.success({ Actions.controlGpAction.success({
@ -44,6 +45,7 @@ function* getControlGpSaga(
); );
if (objectId && isClickObject) { if (objectId && isClickObject) {
console.log(' mm ;;')
let detailData; let detailData;
//상세 정보에서 실시간 데이터 호출 //상세 정보에서 실시간 데이터 호출
@ -54,19 +56,6 @@ function* getControlGpSaga(
}); });
yield put(Actions.controlGpRtDtlAction.request(detailData)); yield put(Actions.controlGpRtDtlAction.request(detailData));
// History Push
if(controlGpHistory) {
const stateHistory = controlGpHistory;
const history = stateHistory.map((h) => {
return {
...h,
detailData
}
});
yield put(Actions.controlGpHisAction.success(history));
}
} }
} catch (error) { } catch (error) {
yield put(Actions.controlGpAction.failure(error)); yield put(Actions.controlGpAction.failure(error));

Loading…
Cancel
Save