Browse Source

비행구역 - 중간좌표 지도 비율에 맞춤

ctrlDraw
junh_eee(이준희) 2 years ago
parent
commit
b468eae781
  1. 51
      src/components/basis/flight/plan/FlightPlanAreaMap.js
  2. 44
      src/components/map/naver/draw/FlightPlanDraw.js

51
src/components/basis/flight/plan/FlightPlanAreaMap.js

@ -44,6 +44,8 @@ const FlightPlanAreaMap = props => {
const [searchRes, setSearchRes] = useState([]); const [searchRes, setSearchRes] = useState([]);
const [isSearch, setIsSearch] = useState(false); const [isSearch, setIsSearch] = useState(false);
const [dragSize, setDragSize] = useState(0);
useEffect(() => { useEffect(() => {
NaverMapInit(); NaverMapInit();
return () => { return () => {
@ -115,7 +117,33 @@ const FlightPlanAreaMap = props => {
style: naver.maps.ZoomControlStyle.SMALL style: naver.maps.ZoomControlStyle.SMALL
} }
}; };
setMap(new naver.maps.Map('map', mapOptions)); const mapp = new naver.maps.Map('map', mapOptions);
naver.maps.Event.addListener(mapp, 'idle', function () {
// console.log(dragSize);
});
naver.maps.Event.addListener(mapp, 'zoom_changed', function () {
switch (mapp.zoom) {
case 13:
setDragSize(100);
break;
case 14:
setDragSize(40);
break;
case 15:
setDragSize(35);
break;
case 16:
setDragSize(20);
break;
case 17:
setDragSize(10);
break;
default:
setDragSize(100);
break;
}
});
setMap(mapp);
}; };
const handlerDrawType = val => { const handlerDrawType = val => {
@ -216,6 +244,7 @@ const FlightPlanAreaMap = props => {
handleConfirm={props.handleConfirm} handleConfirm={props.handleConfirm}
isDone={props.isDone} isDone={props.isDone}
isDisabled={props.isDisabled} isDisabled={props.isDisabled}
dragSize={dragSize}
/> />
) : null} ) : null}
@ -273,26 +302,6 @@ const FlightPlanAreaMap = props => {
</div> </div>
</div> </div>
</div> </div>
{/* <div className='map-comp'>
<Input
type='text'
id='searchInput'
name='searchInput'
className='area-input'
placeholder='검색명을 입력하세요.'
onChange={handleChange}
bsSize='sm'
/>
<Button.Ripple
className='area-button'
color='primary'
onClick={handleSearch}
size='sm'
>
검색
</Button.Ripple>
</div> */}
</div> </div>
</div> </div>

44
src/components/map/naver/draw/FlightPlanDraw.js

@ -33,7 +33,8 @@ export const FlightPlanDraw = props => {
const naver = props.naver; const naver = props.naver;
const map = props.map; const map = props.map;
let mode = props.mode; let mode = props.mode;
let dragCircleSize = props.dragCircleSize; // let dragCircleSize = props.dragCircleSize;
// let dragSize = props.dragSize;
let areaInfo; let areaInfo;
let lastDistance; let lastDistance;
@ -62,6 +63,13 @@ export const FlightPlanDraw = props => {
dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail)); dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail));
}; };
const [radiusCircle, setRadiusCircle] = useState();
// useEffect(() => {
// console.log(props.dragSize);
// setRadiusCircle(props.dragSize);
// }, [props.dragSize]);
useEffect(() => { useEffect(() => {
drawInit(); drawInit();
}, [mapControl.drawType]); }, [mapControl.drawType]);
@ -119,12 +127,6 @@ export const FlightPlanDraw = props => {
setDragCircle([]); setDragCircle([]);
setBuffer(); setBuffer();
} }
if (pastCircle.length != 0) {
pastCircle.forEach(prev => prev.setMap(null));
naver.maps.Event.removeListener(pastClickEve);
setCircle([]);
}
if (pastPolygon) { if (pastPolygon) {
pastPolygon.setMap(null); pastPolygon.setMap(null);
pastDragCircle.forEach(c => c.setMap(null)); pastDragCircle.forEach(c => c.setMap(null));
@ -132,6 +134,12 @@ export const FlightPlanDraw = props => {
setPolygon(); setPolygon();
setDragCircle([]); setDragCircle([]);
} }
if (pastCircle.length != 0) {
pastCircle.forEach(prev => prev.setMap(null));
naver.maps.Event.removeListener(pastClickEve);
setCircle([]);
}
if (pastMarker.length != 0) { if (pastMarker.length != 0) {
pastMarker.forEach(m => m.setMap(null)); pastMarker.forEach(m => m.setMap(null));
setMarker([]); setMarker([]);
@ -198,11 +206,9 @@ export const FlightPlanDraw = props => {
title: '좌표 최소 개수', title: '좌표 최소 개수',
desc: '좌표를 두 개 점으로 이어주세요.' desc: '좌표를 두 개 점으로 이어주세요.'
}); });
polyline.setMap(null); polyline.setMap(null);
polyline = ''; polyline = '';
} }
setFigure(polyline); setFigure(polyline);
} else if (polygon) { } else if (polygon) {
let path = polygon.getPath(); let path = polygon.getPath();
@ -549,7 +555,7 @@ export const FlightPlanDraw = props => {
}; };
areaInfo.coordinates.push(point); areaInfo.coordinates.push(point);
areaInfo.bufferZone = circle.getRadius(); areaInfo.bufferZone = Math.round(circle.getRadius());
areaInfo.areaType = 'CIRCLE'; areaInfo.areaType = 'CIRCLE';
} }
props.handleCoordinates(areaInfo); props.handleCoordinates(areaInfo);
@ -592,8 +598,6 @@ export const FlightPlanDraw = props => {
let clickSet; let clickSet;
{ {
// isDisabled === true ? (clickSet = false) : (clickSet = true);
// (isYour || isDone) === true ? (clickSet = false) : (clickSet = true);
(isDisabled || isDone) === true (isDisabled || isDone) === true
? (clickSet = false) ? (clickSet = false)
: (clickSet = true); : (clickSet = true);
@ -626,17 +630,15 @@ export const FlightPlanDraw = props => {
fillColor: '#ffffff', fillColor: '#ffffff',
fillOpacity: 1, fillOpacity: 1,
center: paths[i], center: paths[i],
radius: 17, // radius: 17,
// radius: dragCircleSize, // radius: dragSize,
map: map, map: map,
// clickable: true // clickable: true
clickable: clickSet clickable: clickSet,
...(props.dragSize ? { radius: radiusCircle } : { radius: 100 })
}) })
); );
// dragCircleEve.push(naver.maps.Event.addListener(dragCircle[i], 'mousedown', function () { onMouseDownDrag(i) }))
{ {
// isDisabled
// isYour || isDone
isDisabled || isDone isDisabled || isDone
? {} ? {}
: dragCircleEve.push( : dragCircleEve.push(
@ -740,17 +742,15 @@ export const FlightPlanDraw = props => {
fillColor: '#ffffff', fillColor: '#ffffff',
fillOpacity: 1, fillOpacity: 1,
center: paths[i], center: paths[i],
radius: 15, // radius: dragSize,
// radius: 17,
// radius: dragCircleSize, // radius: dragCircleSize,
map: map, map: map,
// clickable: true // clickable: true
clickable: clickSet clickable: clickSet
}) })
); );
// dragCircleEve.push(naver.maps.Event.addListener(dragCircle[i], 'mousedown', function () { onMouseDownDrag(i) }))
{ {
// isDisabled
// isYour || isDone
isDisabled || isDone isDisabled || isDone
? {} ? {}
: dragCircleEve.push( : dragCircleEve.push(

Loading…
Cancel
Save