A web application for visualizing and querying 3D building data using FlatCityBuf (FCB) format.
This application uses:
- React with TypeScript
- Cesium for 3D visualization (via resium)
- Jotai for state management
- Flatcitybuf for data processing
The application has been refactored to use Jotai for global state management:
-
Centralized State:
- All relevant state (rectangle, fetch mode, attribute conditions, etc.) are now managed in Jotai atoms
- Better state synchronization between components
- Cleaner code with fewer prop drilling
-
Modular Code Structure:
- Split into focused hooks:
useCesiumControls
anduseFcbData
- Clear separation of concerns
- Split into focused hooks:
-
Fixed Issues:
- Attribute conditions are properly passed to the FCB API
- Improved data fetching with proper pagination tracking
- Reusable components with consistent state access
/src/store/index.ts
- Jotai atoms for global state/src/hooks/useCesiumControls.ts
- Cesium map interaction/src/hooks/useFcbData.ts
- FCB data fetching/src/feature/data-fetch-controls
- UI for data fetching/src/feature/attribute
- Attribute condition management
- Draw a rectangle on the map
- Choose between BBox or Attribute Condition mode
- Set feature limit for pagination
- Use "Fetch FCB" to get data
- Use "Load Next Batch" for pagination
The app uses an optimized caching system for FCB requests to avoid redundant initializations and improve performance when fetching data.