diff --git a/src/assets/css/custom.css b/src/assets/css/custom.css
index c5e699c..d2ce580 100644
--- a/src/assets/css/custom.css
+++ b/src/assets/css/custom.css
@@ -819,5 +819,4 @@ background-size: 75% auto;
.grid-loading span{display:block;font-weight:500;margin-top:4px;}
.pa-input-box{display:flex;}
-.pa-input-box input + input {margin-left:8px;}
-.pa-input{width:48px;}
\ No newline at end of file
+.pa-input{width:48px;margin-right:8px;}
\ No newline at end of file
diff --git a/src/components/map/naver/draw/FlightPlanDraw.js b/src/components/map/naver/draw/FlightPlanDraw.js
index 0f55840..758ed6e 100644
--- a/src/components/map/naver/draw/FlightPlanDraw.js
+++ b/src/components/map/naver/draw/FlightPlanDraw.js
@@ -31,6 +31,8 @@ export const FlightPlanDraw_init = props => {
desc: ''
});
+ const [radiusCircle, setRadiusCircle] = useState();
+
const naver = props.naver;
const map = props.map;
let mode = props.mode;
@@ -58,12 +60,6 @@ export const FlightPlanDraw_init = props => {
let distanceMarker = [];
- const handleBufferList = () => {
- dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail));
- };
-
- const [radiusCircle, setRadiusCircle] = useState();
-
useEffect(() => {
setRadiusCircle(props.dragSize);
}, [props.dragSize]);
@@ -89,6 +85,10 @@ export const FlightPlanDraw_init = props => {
}
}, [areaDetail]);
+ const handleBufferList = () => {
+ dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail));
+ };
+
const drawInit = () => {
if (mapControl.drawType === 'LINE') {
onClickButton('LINE');
diff --git a/src/components/map/naver/dron/DronMarker.js b/src/components/map/naver/dron/DronMarker.js
index e612fad..84e0e08 100644
--- a/src/components/map/naver/dron/DronMarker.js
+++ b/src/components/map/naver/dron/DronMarker.js
@@ -23,6 +23,9 @@ export const DronMarker = props => {
const { objectId, isClickObject } = useSelector(
state => state.controlMapReducer
);
+ const { controlGroupAuthInfo } = useSelector(
+ state => state.controlGroupAuthState
+ );
const [arrMarkers, setArrMarkers] = useState([]);
// const [arrInfos, setArrInfos] = useState([]);
@@ -80,7 +83,7 @@ export const DronMarker = props => {
arrMarkers.map(clickMarker => {
if (objectId === clickMarker.controlId && isClickObject) {
imageUrl =
- clickMarker.id.indexOf('PALDRONE') > -1
+ clickMarker.type === 'DRONE'
? DronDetailIcon
: FlightDetailIcon;
clickMarker.setIcon({
@@ -90,7 +93,7 @@ export const DronMarker = props => {
});
} else {
imageUrl =
- clickMarker.id.indexOf('PALDRONE') > -1 ? DronIcon : FlightIcon;
+ clickMarker.type === 'DRONE' ? DronIcon : FlightIcon;
clickMarker.setIcon({
content: ``,
origin: new naver.maps.Point(0, 0),
@@ -111,22 +114,32 @@ export const DronMarker = props => {
//마커를 그린다.
const addMarkers = (position, id, controlId, gps) => {
- const iconOption = {};
-
- const homePath = window.HOME_PATH || '.';
- iconOption.url = id.indexOf('PALDRONE') > -1 ? DronIcon : FlightIcon;
- iconOption.origin = new naver.maps.Point(0, 0);
- iconOption.anchor = new naver.maps.Point(15, 15);
+ const markerOption = {};
+
+ if (id.substring(0, 2) === 'PA') {
+ const pal = controlGroupAuthInfo.find(
+ prev => prev.idntfNum === gps.objectId
+ );
+ markerOption.url = pal ? DronIcon : FlightIcon;
+ markerOption.type = pal ? 'DRONE' : 'FLIGHT';
+ } else {
+ markerOption.url = FlightIcon;
+ markerOption.type = 'FLIGHT';
+ }
+
+ markerOption.origin = new naver.maps.Point(0, 0);
+ markerOption.anchor = new naver.maps.Point(15, 15);
const marker = new naver.maps.Marker({
position: position,
title: id,
id: id,
controlId: controlId,
+ type: markerOption.type,
icon: {
- content: ``,
- origin: iconOption.origin,
- anchor: iconOption.anchor
+ content: ``,
+ origin: markerOption.origin,
+ anchor: markerOption.anchor
},
gps: gps
});
diff --git a/src/modules/control/gp/sagas/controlGpSaga.ts b/src/modules/control/gp/sagas/controlGpSaga.ts
index 34ce38a..75d2c69 100644
--- a/src/modules/control/gp/sagas/controlGpSaga.ts
+++ b/src/modules/control/gp/sagas/controlGpSaga.ts
@@ -10,6 +10,7 @@ import { controlGpApi } from '../apis/controlGpApi';
import decode from 'jwt-decode';
import { ControlGpData } from '../models/controlGpModel';
import { detail } from '../../../analysis/history/actions/analysisHistoryAction';
+import { useSelector } from 'react-redux';
function* getControlGpSaga(
action: ActionType
@@ -28,24 +29,15 @@ function* getControlGpSaga(
//사용자가 등록한 기체(식별장치 포함)만 관제에서 볼 수 있게 필터처리
if (controlGroupAuthInfo.length > 0) {
controlGroupAuthInfo.forEach(auth => {
- // if (auth.groupAuthCd === 'CREATER' || auth.groupAuthCd === 'ADMIN') {
-
if (gpsData.length > 0) return false;
- gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
- // }
-
- // 식별장치 마다 user를 판단할 수 없기 때문에 일단 주석 처리
- // if (auth.groupAuthCd === 'USER') {
- // if (gpsData.length > 0) return false;
-
- // gpsData.filter(gps => auth.createUserId && auth.idntfNum === gps.objectId);
- // }
+ // gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
});
}
yield put(
Actions.controlGpAction.success({
+ // controlGpList: gpsData
controlGpList: data
})
);
@@ -54,7 +46,11 @@ function* getControlGpSaga(
const controlIds: any = [];
data.forEach(gps => {
- if (gps.controlId && gps.objectId.indexOf("PALDRONE") > -1) controlIds.push(gps.controlId);
+ if (gps.controlId && gps.objectId.substring(0, 2) === 'PA') {
+ const arcrft = controlGroupAuthInfo.find(auth => auth.idntfNum === gps.objectId);
+
+ if (arcrft) controlIds.push(gps.controlId);
+ }
});
const param = controlIds.join(',');