79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
import GisApp from './lib/gis.core';
|
|
import { useGisContext } from './Gis';
|
|
import GisLonLat from './GisLonLat';
|
|
import GisSelect from './GisSelect';
|
|
import GisToolBar from './GisToolBar';
|
|
import './lib/css/gis.edit.css';
|
|
import GisMapToggle from './GisMapToggle';
|
|
import { Search } from 'lucide-react';
|
|
|
|
export default function GisContent({ edit = false, onFeatureSelect, isSearch, setIsSearchModalOpen }) {
|
|
const { gisMap, gisCore } = useGisContext();
|
|
const [visibleComponents, setVisibleComponents] = useState({});
|
|
const addressResultLayer = useRef(null);
|
|
const [playShow, setPlayShow] = useState({ show: false });
|
|
|
|
//셀렉트 버튼 이벤트
|
|
// const clickFeature = useCallback(feature => {
|
|
// if (feature) {
|
|
// const layer = feature.getLayer();
|
|
// setVisibleComponents(prevState => ({
|
|
// ...prevState,
|
|
// }));
|
|
// }
|
|
// }, []);
|
|
|
|
const selectRslt = useCallback(feature => {
|
|
GisApp.Module.layer.highLightFeature(
|
|
[feature],
|
|
{
|
|
id: GisApp.hlLayerId,
|
|
zIndex: 10,
|
|
opacity: 1,
|
|
selectable: true,
|
|
},
|
|
{ width: 30 }
|
|
);
|
|
clickFeature(feature);
|
|
}, []);
|
|
|
|
useEffect(() => {
|
|
if (gisMap) {
|
|
setVisibleComponents(prevState => ({
|
|
...prevState,
|
|
}));
|
|
}
|
|
}, [gisMap]);
|
|
|
|
if (!gisMap) return null;
|
|
|
|
return (
|
|
<>
|
|
{/*<GisTree />*/}
|
|
{/* <GisMapToggle />
|
|
<GisLonLat />
|
|
<GisToolBar /> */}
|
|
{/* <GisSelect onFeatureSelect={onFeatureSelect} /> */}
|
|
|
|
{/* 검색 모달 */}
|
|
{isSearch && (
|
|
<div className="absolute right-8 top-[254px] z-20">
|
|
<button
|
|
type="button"
|
|
onClick={() => setIsSearchModalOpen(true)}
|
|
className="overflow-hidden w-[40px] h-[40px] bg-white
|
|
border border-[#9aa7b8]
|
|
rounded
|
|
shadow-[0_0_5px_#999]
|
|
flex items-center justify-center
|
|
p-0
|
|
"
|
|
>
|
|
<Search size={24} className="text-gray-700" />
|
|
</button>
|
|
</div>
|
|
)}
|
|
</>
|
|
);
|
|
} |