Browse Source

Merge branch 'master' of http://gitea.palntour.com/pav/pav-home

pull/2/head
sanguu(박상현) 2 years ago
parent
commit
d406c2c966
  1. 3
      src/assets/css/custom.css
  2. 12
      src/components/map/naver/draw/FlightPlanDraw.js
  3. 33
      src/components/map/naver/dron/DronMarker.js
  4. 20
      src/modules/control/gp/sagas/controlGpSaga.ts

3
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;}
.pa-input{width:48px;margin-right:8px;}

12
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');

33
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: `<img src="${imageUrl}" alt="" style="transform: rotate(${clickMarker.gps.heading}deg)">`,
origin: new naver.maps.Point(0, 0),
@ -111,22 +114,32 @@ export const DronMarker = props => {
//마커를 그린다.
const addMarkers = (position, id, controlId, gps) => {
const iconOption = {};
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';
}
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);
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: `<img src="${iconOption.url}" alt="" style="transform: rotate(${gps.heading}deg)">`,
origin: iconOption.origin,
anchor: iconOption.anchor
content: `<img src="${markerOption.url}" alt="" style="transform: rotate(${gps.heading}deg)">`,
origin: markerOption.origin,
anchor: markerOption.anchor
},
gps: gps
});

20
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<typeof Actions.controlGpAction.request>
@ -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(',');

Loading…
Cancel
Save