|
|
|
@ -37,7 +37,7 @@ export const DronMarker = props => {
|
|
|
|
|
const { joinList } = useSelector(state => state.groupState); |
|
|
|
|
|
|
|
|
|
const [arrMarkers, setArrMarkers] = useState([]); |
|
|
|
|
// const [arrInfos, setArrInfos] = useState([]);
|
|
|
|
|
const [arrInfos, setArrInfos] = useState([]); |
|
|
|
|
|
|
|
|
|
let naver = props.naver; |
|
|
|
|
let map = props.map; |
|
|
|
@ -95,6 +95,12 @@ export const DronMarker = props => {
|
|
|
|
|
); |
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (arrMarkers.length != 0) { |
|
|
|
|
markerInfo(arrMarkers); |
|
|
|
|
} |
|
|
|
|
}, [arrMarkers]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
markerInit(); |
|
|
|
|
}, [controlGpList]); |
|
|
|
@ -133,28 +139,21 @@ export const DronMarker = props => {
|
|
|
|
|
//마커를 그린다.
|
|
|
|
|
const addMarkers = (position, id, controlId, gps) => { |
|
|
|
|
const markerOption = {}; |
|
|
|
|
console.log(gps, 'gps'); |
|
|
|
|
|
|
|
|
|
console.log(id, 'idntfNum'); |
|
|
|
|
if (id.substring(0, 2) === 'PA') { |
|
|
|
|
const pal = controlGroupAuthInfo?.find( |
|
|
|
|
prev => prev.idntfNum === gps.objectId |
|
|
|
|
); |
|
|
|
|
console.log(pal, '등록된 식별장치'); |
|
|
|
|
if (pal) { |
|
|
|
|
console.log('맞음'); |
|
|
|
|
markerOption.url = DronIcon; |
|
|
|
|
markerOption.type = 'DRONE'; |
|
|
|
|
} else { |
|
|
|
|
console.log('아님'); |
|
|
|
|
if (user.authId === 'SUPER' || user.authId === 'ADMIN') { |
|
|
|
|
console.log('super, admin'); |
|
|
|
|
markerOption.url = FlightIcon; |
|
|
|
|
markerOption.type = 'FLIGHT'; |
|
|
|
|
} else { |
|
|
|
|
console.log('user'); |
|
|
|
|
const terminal = joinList?.find(prev => prev.trmnlId === gps.trmnlId); |
|
|
|
|
console.log(terminal, 'trmnlId 일치 있음'); |
|
|
|
|
if ( |
|
|
|
|
terminal?.groupAuthCd === 'MASTER' || |
|
|
|
|
terminal?.groupAuthCd === 'LEADER' |
|
|
|
@ -309,6 +308,16 @@ export const DronMarker = props => {
|
|
|
|
|
const arrData = arrMarkers.filter(item => item.id != marker.id); |
|
|
|
|
removeArrMarkers(arrData); |
|
|
|
|
|
|
|
|
|
dispatch(objectUnClickAction()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
arrInfos.map(info => { |
|
|
|
|
const isExists = controlGpList.find(item => item.objectId === info._id); |
|
|
|
|
if (!isExists) { |
|
|
|
|
removeInfos(info); |
|
|
|
|
const arrData = arrInfos.filter(item => item.id != info._id); |
|
|
|
|
removeArrInfos(arrData); |
|
|
|
|
|
|
|
|
|
dispatch(objectUnClickAction()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
@ -324,10 +333,10 @@ export const DronMarker = props => {
|
|
|
|
|
|
|
|
|
|
if (arrMarkers) { |
|
|
|
|
const isExists = arrMarkers.find(ele => ele.id === item.objectId); |
|
|
|
|
// const isInfos = arrInfos.find( info => info._id === item.objectId )
|
|
|
|
|
const isInfos = arrInfos.find(info => info._id === item.objectId); |
|
|
|
|
if (isExists) { |
|
|
|
|
moveMarkers(isExists, position, item); |
|
|
|
|
// moveInfos(isInfos, position);
|
|
|
|
|
moveInfos(isInfos, position); |
|
|
|
|
} else { |
|
|
|
|
addMarkers(position, item.objectId, item.controlId, item); |
|
|
|
|
} |
|
|
|
@ -447,9 +456,9 @@ export const DronMarker = props => {
|
|
|
|
|
setArrInfos(arrData); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const markerInfo = () => { |
|
|
|
|
const markerInfo = arrMarkers => { |
|
|
|
|
arrMarkers.forEach((marker, idx) => { |
|
|
|
|
// infoInit(marker, controlGpList[idx], idx);
|
|
|
|
|
infoInit(marker, controlGpList[idx], idx); |
|
|
|
|
|
|
|
|
|
if (controlGpList.length != 0) { |
|
|
|
|
const info = new CustomOverlay({ |
|
|
|
|