|
|
@ -1,40 +1,35 @@ |
|
|
|
import React, { useEffect, useState } from 'react'; |
|
|
|
|
|
|
|
import { Search } from 'react-feather'; |
|
|
|
|
|
|
|
import { BiBuildings, BiGridAlt } from 'react-icons/bi'; |
|
|
|
|
|
|
|
import { CgTrees } from 'react-icons/cg'; |
|
|
|
|
|
|
|
import { VscRadioTower } from 'react-icons/vsc'; |
|
|
|
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
import { |
|
|
|
import { useHistory } from 'react-router-dom'; |
|
|
|
Button, |
|
|
|
import { Button, ButtonGroup, CustomInput } from 'reactstrap'; |
|
|
|
InputGroup, |
|
|
|
|
|
|
|
ButtonGroup, |
|
|
|
|
|
|
|
InputGroupAddon, |
|
|
|
|
|
|
|
Input, |
|
|
|
|
|
|
|
CustomInput, |
|
|
|
|
|
|
|
Row, |
|
|
|
|
|
|
|
Col |
|
|
|
|
|
|
|
} from 'reactstrap'; |
|
|
|
|
|
|
|
import { |
|
|
|
import { |
|
|
|
areaClickAction, |
|
|
|
areaClickAction, |
|
|
|
environmentClickAction, |
|
|
|
|
|
|
|
mapTypeChangeAction, |
|
|
|
mapTypeChangeAction, |
|
|
|
sensorClickAction |
|
|
|
sensorClickAction |
|
|
|
} from '../../../modules/control/map/actions/controlMapActions'; |
|
|
|
} from '../../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
|
|
|
|
|
|
|
const ControlSetting = props => { |
|
|
|
const ControlSetting = props => { |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
const history = useHistory(); |
|
|
|
const mapControl = useSelector(state => state.controlMapReducer); |
|
|
|
const mapControl = useSelector(state => state.controlMapReducer); |
|
|
|
|
|
|
|
|
|
|
|
const handlerMapType = val => { |
|
|
|
const handlerMapType = val => { |
|
|
|
if (val === mapControl.mapType) return; |
|
|
|
if (val === mapControl.mapType) return; |
|
|
|
if (val === 'NORMAL') { |
|
|
|
if (val === 'TERRAIN') { |
|
|
|
mapControl.map.setStyle('mapbox://styles/mapbox/streets-v12'); |
|
|
|
mapControl.map.setTerrain({ |
|
|
|
mapControl.map.removeSource('mapbox-dem'); |
|
|
|
source: 'mapbox-dem', |
|
|
|
} else if (val === 'TERRAIN') { |
|
|
|
exaggeration: 1 |
|
|
|
// props.map.setMapTypeId(naver.maps.MapTypeId.TERRAIN);
|
|
|
|
}); |
|
|
|
|
|
|
|
mapControl.map.setMaxPitch(85); |
|
|
|
|
|
|
|
mapControl.map.dragRotate.enable(); |
|
|
|
|
|
|
|
} else if (val === 'NORMAL') { |
|
|
|
|
|
|
|
mapControl.map.setTerrain(); |
|
|
|
|
|
|
|
mapControl.map.setMaxPitch(85); |
|
|
|
|
|
|
|
mapControl.map.dragRotate.enable(); |
|
|
|
} else if (val === '2D') { |
|
|
|
} else if (val === '2D') { |
|
|
|
mapControl.map.setStyle('mapbox://styles/mapbox/satellite-streets-v11'); |
|
|
|
console.log(mapControl.map); |
|
|
|
|
|
|
|
mapControl.map.setMaxPitch(0); |
|
|
|
|
|
|
|
mapControl.map.setBearing(0); |
|
|
|
|
|
|
|
mapControl.map.dragRotate.disable(); |
|
|
|
} |
|
|
|
} |
|
|
|
dispatch(mapTypeChangeAction(val)); |
|
|
|
dispatch(mapTypeChangeAction(val)); |
|
|
|
}; |
|
|
|
}; |
|
|
@ -193,18 +188,53 @@ const ControlSetting = props => { |
|
|
|
<div className='layer-ti'> |
|
|
|
<div className='layer-ti'> |
|
|
|
<h4>LAANC 신청하기</h4> |
|
|
|
<h4>LAANC 신청하기</h4> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<a className='btn btn-primary laanc-btn'>승인요청 바로가기</a> |
|
|
|
<button |
|
|
|
|
|
|
|
className='btn btn-primary laanc-btn' |
|
|
|
|
|
|
|
onClick={() => history.push('/basis/laanc/index')} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
승인요청 바로가기 |
|
|
|
|
|
|
|
</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className='layer-content'> |
|
|
|
<div className='layer-content'> |
|
|
|
<div className='layer-ti'> |
|
|
|
<div className='layer-ti'> |
|
|
|
<h4>드론 원스톱 시스템</h4> |
|
|
|
<h4>드론 원스톱 시스템</h4> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className='onstop-link'> |
|
|
|
<div className='onstop-link'> |
|
|
|
<a className='btn btn-outline-primary' href='https://drone.onestop.go.kr/' target='_blank'>비행장치 신고서 등록</a> |
|
|
|
<a |
|
|
|
<a className='btn btn-outline-primary' href='https://drone.onestop.go.kr/' target='_blank'>사업등록 신고서 등록</a> |
|
|
|
className='btn btn-outline-primary' |
|
|
|
<a className='btn btn-outline-primary' href='https://drone.onestop.go.kr/' target='_blank'>비행승인 신청서 등록</a> |
|
|
|
href='https://drone.onestop.go.kr/' |
|
|
|
<a className='btn btn-outline-primary' href='https://drone.onestop.go.kr/' target='_blank'>특별비행 승인</a> |
|
|
|
target='_blank' |
|
|
|
<a className='btn btn-outline-primary' href='https://drone.onestop.go.kr/' target='_blank'>항공 촬영 신청서 등록</a> |
|
|
|
> |
|
|
|
|
|
|
|
비행장치 신고서 등록 |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
<a |
|
|
|
|
|
|
|
className='btn btn-outline-primary' |
|
|
|
|
|
|
|
href='https://drone.onestop.go.kr/' |
|
|
|
|
|
|
|
target='_blank' |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
사업등록 신고서 등록 |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
<a |
|
|
|
|
|
|
|
className='btn btn-outline-primary' |
|
|
|
|
|
|
|
href='https://drone.onestop.go.kr/' |
|
|
|
|
|
|
|
target='_blank' |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
비행승인 신청서 등록 |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
<a |
|
|
|
|
|
|
|
className='btn btn-outline-primary' |
|
|
|
|
|
|
|
href='https://drone.onestop.go.kr/' |
|
|
|
|
|
|
|
target='_blank' |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
특별비행 승인 |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
<a |
|
|
|
|
|
|
|
className='btn btn-outline-primary' |
|
|
|
|
|
|
|
href='https://drone.onestop.go.kr/' |
|
|
|
|
|
|
|
target='_blank' |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
항공 촬영 신청서 등록 |
|
|
|
|
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* <div className='layer-content'> |
|
|
|
{/* <div className='layer-content'> |
|
|
|