유하방향 줌레벨 표시 추가
This commit is contained in:
@@ -1408,6 +1408,35 @@ const Map = () => {
|
||||
const [flowDirectionLayerInfo, setFlowDirectionLayerInfo] = useState<any | null>(null);
|
||||
// 관종 레이어 체크 변경도 유하방향 재조회 조건이므로 별도 버전 state로 effect를 다시 실행한다.
|
||||
const [flowDirectionSelectionVersion, setFlowDirectionSelectionVersion] = useState(0);
|
||||
// 줌레벨 컨트롤에 현재 체크된 특수 레이어의 최소 표출 기준을 안내한다.
|
||||
const zoomGuide = useMemo(() => {
|
||||
const flowDirectionGuideZoom = flowDirectionLayerInfo
|
||||
? getFlowDirectionMinZoom(flowDirectionLayerInfo)
|
||||
: FLOW_DIRECTION_DEFAULT_MIN_ZOOM;
|
||||
|
||||
if (isAgedPipeChecked && isFlowDirectionChecked) {
|
||||
return {
|
||||
label: "노후관로/유하방향 기준",
|
||||
zoom: Math.max(AGED_PIPE_GUIDE_MIN_ZOOM, flowDirectionGuideZoom),
|
||||
};
|
||||
}
|
||||
|
||||
if (isFlowDirectionChecked) {
|
||||
return {
|
||||
label: "유하방향 기준",
|
||||
zoom: flowDirectionGuideZoom,
|
||||
};
|
||||
}
|
||||
|
||||
if (isAgedPipeChecked) {
|
||||
return {
|
||||
label: "노후관로 기준",
|
||||
zoom: AGED_PIPE_GUIDE_MIN_ZOOM,
|
||||
};
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}, [flowDirectionLayerInfo, isAgedPipeChecked, isFlowDirectionChecked]);
|
||||
// moveend 이벤트 핸들러는 최신 state closure를 보장하지 않으므로 현재 체크 여부를 ref로 함께 보관한다.
|
||||
const flowDirectionCheckedRef = useRef(false);
|
||||
// 지도 이동 후 재조회할 때 최신 유하방향 레이어 설정을 참조하기 위한 ref이다.
|
||||
@@ -3568,14 +3597,7 @@ const Map = () => {
|
||||
showZoomScaleInfo={true}
|
||||
showFloatingSearchButton={false}
|
||||
treeTogglePosition="top"
|
||||
zoomGuide={
|
||||
isAgedPipeChecked
|
||||
? {
|
||||
label: "노후관로 기준",
|
||||
zoom: AGED_PIPE_GUIDE_MIN_ZOOM,
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
zoomGuide={zoomGuide}
|
||||
|
||||
defaultZoom={7.5}
|
||||
defaultLonLat={[127.75, 36]}
|
||||
|
||||
Reference in New Issue
Block a user