diff --git a/src/app/OlMap/MapComponent.tsx b/src/app/OlMap/MapComponent.tsx index 7aebaf7..99c053d 100644 --- a/src/app/OlMap/MapComponent.tsx +++ b/src/app/OlMap/MapComponent.tsx @@ -96,12 +96,15 @@ export const useData = () => { }; const MapComponent: React.FC = ({ children }) => { - const MAP_EXTENT = config.MAP_EXTENT as [number, number, number, number]; - const MAP_URL = config.MAP_URL; - - // Subscribe to project context for workspace changes const project = useProject(); const MAP_WORKSPACE = project?.workspace || config.MAP_WORKSPACE; + const MAP_EXTENT = (project?.extent || config.MAP_EXTENT) as [ + number, + number, + number, + number, + ]; + const MAP_URL = config.MAP_URL; const MAP_VIEW_STORAGE_KEY = `${MAP_WORKSPACE}_map_view`; // 持久化 key const mapRef = useRef(null); @@ -464,7 +467,7 @@ const MapComponent: React.FC = ({ children }) => { const scadaLayer = new VectorLayer({ source: scadaSource, style: scadaStyle, - // extent: extent, // 设置图层范围 + extent: MAP_EXTENT, // 设置图层范围 maxZoom: 24, minZoom: 11, properties: { diff --git a/src/components/project/ProjectSelector.tsx b/src/components/project/ProjectSelector.tsx index 9e09cf7..49cc6a7 100644 --- a/src/components/project/ProjectSelector.tsx +++ b/src/components/project/ProjectSelector.tsx @@ -155,7 +155,7 @@ export const ProjectSelector: React.FC = ({ value={workspace} onChange={(e) => setWorkspace(e.target.value)} fullWidth - helperText="例如: TJWater" + helperText="例如: tjwater" /> (undefined); @@ -19,6 +20,7 @@ export const ProjectProvider: React.FC<{ children: React.ReactNode }> = ({ const [currentProject, setCurrentProject] = useState({ workspace: config.MAP_WORKSPACE, networkName: NETWORK_NAME || "tjwater", + extent: config.MAP_EXTENT, }); useEffect(() => { @@ -47,7 +49,7 @@ export const ProjectProvider: React.FC<{ children: React.ReactNode }> = ({ localStorage.removeItem(`${ws}_map_view`); } - setCurrentProject({ workspace: ws, networkName: net }); + setCurrentProject({ workspace: ws, networkName: net, extent: extent || config.MAP_EXTENT }); // Save to localStorage localStorage.setItem("NEXT_PUBLIC_MAP_WORKSPACE", ws);