How harvey-euph/geo-vis works
Geo-Vis is a browser-based administrative geography explorer. Users navigate or search countries and ADM1/ADM2 regions, inspect and select features, change projections, and optionally combine regions with Union/Dissolve tools; URL parameters can initialize and share the view. The main coordinator composes data, interaction, labels, and UI hooks. The graph preserves the documented label, capital, vertex, and starfield capabilities. Some subsystem links rely on README descriptions or source-index references; unsampled internals are not inferred beyond those links.
Main entry points: GeoVisApp.tsx App coordinator · useRegionLabels.ts Region labels · useGeoData.ts Geo data loading · useUrlState.ts URL state
Components 31
Application and UI
- App entry
src/app/page.tsx - App coordinator
src/components/GeoVisApp.tsx - Navigation controls
src/components/TopNavigationBar.tsx - Map options
src/components/OptionsWindow.tsx - Region inspector
src/components/LeftHudInspector.tsx - Union controls
src/components/RightDevSidebar.tsx - Dev toolbar
src/components/DevUnionToolbar.tsx - Vertex tooltip
src/components/VertexTooltip.tsx
Geographic Data
- Geo data loading
src/components/hooks/useGeoData.ts - FGB loader
src/lib/fgb-loader.ts - Admin hierarchy
src/lib/hierarchy-manager.ts - URL state
src/components/hooks/useUrlState.ts - Target resolver
src/lib/target-resolver.ts
Map Interaction
- Map event sync
src/components/hooks/useMapSync.ts - Interactive layers
src/components/hooks/useInteractiveLayers.ts - Map layer config
src/components/map/map-layers.ts - Vertex extraction
src/components/hooks/usePolygonVertices.ts
Geometry and Union
- Projection transforms
src/lib/projections.ts - Spatial hit index
src/lib/spatial-index.ts - Union state manager
src/components/hooks/useUnionManager.ts - Union engine
src/lib/union-engine.ts - Fit bounds
src/lib/bbox-helper.ts - Capital mapping
src/lib/capital-manager.ts
Labels and Effects
- Region labels
src/components/hooks/useRegionLabels.ts - Label parser
src/lib/label-parser.ts - Label hierarchy
src/lib/label-hierarchy-resolver.ts - Label rendering
src/lib/label-manager.ts - Label anchors
src/lib/label-anchors.ts - Starfield rendering
src/components/hooks/useStarfieldRender.ts - Star catalog renderer
src/lib/starfield.ts
Other components
- Map user
Connections 32
- Map user → App entry: opens
src/app/page.tsx - App entry → App coordinator: renders
src/app/page.tsx - App coordinator → Navigation controls: composes
src/components/GeoVisApp.tsx - App coordinator → Map options: composes
src/components/GeoVisApp.tsx - App coordinator → Region inspector: composes
src/components/GeoVisApp.tsx - App coordinator → Union controls: composes
src/components/GeoVisApp.tsx - App coordinator → Dev toolbar: composes
src/components/GeoVisApp.tsx - App coordinator → Vertex tooltip: composes
src/components/GeoVisApp.tsx - App coordinator → Geo data loading: coordinates
src/components/GeoVisApp.tsx - Geo data loading → FGB loader: loads features
src/components/hooks/useGeoData.ts - Geo data loading → Admin hierarchy: loads hierarchy
src/components/hooks/useGeoData.ts - App coordinator → URL state: coordinates
src/components/GeoVisApp.tsx - URL state → Target resolver: resolves targets
src/components/hooks/useUrlState.ts - App coordinator → Map event sync: coordinates
src/components/GeoVisApp.tsx - Map event sync → Admin hierarchy: loads hierarchy
src/components/hooks/useMapSync.ts - Map event sync → Map layer config: configures
src/components/hooks/useMapSync.ts - App coordinator → Interactive layers: coordinates
src/components/GeoVisApp.tsx - Interactive layers → Projection transforms: projects geometry
src/components/hooks/useInteractiveLayers.ts - Interactive layers → Spatial hit index: builds hit index
src/components/hooks/useInteractiveLayers.ts - App coordinator → Union state manager: coordinates
src/components/GeoVisApp.tsx - Union state manager → Union engine: dissolves features
src/components/hooks/useUnionManager.ts - Union engine → Capital mapping: checks capitals
src/lib/union-engine.ts - URL state → Fit bounds: fits target
- App coordinator → Vertex extraction: coordinates
src/components/GeoVisApp.tsx - App coordinator → Region labels: coordinates
src/components/GeoVisApp.tsx - Region labels → Label parser: parses datasets
src/components/hooks/useRegionLabels.ts - Region labels → Label hierarchy: resolves labels
src/components/hooks/useRegionLabels.ts - Region labels → Label rendering: renders labels
src/components/hooks/useRegionLabels.ts - Label rendering → Label anchors: gets anchors
src/lib/label-manager.ts - Label rendering → Projection transforms: projects anchors
src/lib/label-manager.ts - App coordinator → Starfield rendering: coordinates
src/components/GeoVisApp.tsx - Starfield rendering → Star catalog renderer: renders catalog
src/components/hooks/useStarfieldRender.ts