How harvey-euph/inter-geo works
Inter-Geo is a front-end GIS and GeoGuessr exploration aid. Users navigate a canvas map from country to finer administrative boundaries, inspect selected places and road clues, and overlay geographic layers; Markdown dossiers and Street View add contextual evidence. The app loads indexes and content from a separate data repository. The graph preserves documented CSV layers, union borders, URL-driven navigation, and developer editing capabilities. Some components are represented from README documentation or index references; their detailed runtime wiring was not sampled, so uncertain connections are omitted.
Main entry points: WorldMap.tsx Interactive Map · csvLayerRegistry.ts CSV Layer Registry · MarkdownInfoCard.tsx Info Dossiers · geoIndexClient.ts Remote Indexes
Components 26
App and Exploration
- App State
src/App.tsx - Interactive Map
src/components/WorldMap.tsx - Place Details
src/components/CountryDetailPanel.tsx - L3 Picker
src/components/L3ChildPicker.tsx - Geo Quiz
src/components/QuizModal.tsx
Geospatial Data
- Remote Indexes
src/data/geoIndexClient.ts - Content URLs
src/data/dataSource.ts - Country Catalog
src/data/countries.ts - Geometry Decoder
src/map/geoDecode.worker.ts - Worker Client
src/map/geoWorkerClient.ts - Map Projection
src/map/geo.ts
Layers and Rendering
- CSV Layer Registry
src/layers/csvLayerRegistry.ts - CSV Parser
src/layers/csvLayerParser.ts - Region Assignment
src/layers/assignableRegions.ts - External Features
src/layers/extObjectLoader.ts - Nationwide Layers
src/data/nationwideLayers.ts - Canvas Renderer
src/map/render/renderLayers.ts - Union Borders
src/map/unionDissolve.ts
Dossiers and Street View
- Info Dossiers
src/components/MarkdownInfoCard.tsx - Info Registry
src/info/infoRegistry.ts - Info Parser
src/info/infoParser.ts - Street View Embed
src/components/GoogleMapsEmbed.tsx
Developer Tools
- Layer Size Controls
src/components/LayerSizeControls.tsx - Article Writer
scripts/info-article-writer.mjs
Other components
- Explorer
- Google Maps
Connections 30
- Explorer → App State: interacts with
README.md - App State → Interactive Map: renders
src/App.tsx - App State → Geo Quiz: renders
src/App.tsx - Interactive Map → Remote Indexes: loads indexes
src/components/WorldMap.tsx - Interactive Map → Content URLs: fetches geometry
src/components/WorldMap.tsx - Remote Indexes → Content URLs: builds index URLs
src/data/geoIndexClient.ts - Remote Indexes → Country Catalog: syncs country data
src/data/countries.ts - Interactive Map → Worker Client: requests decode
src/components/WorldMap.tsx - Worker Client → Geometry Decoder: dispatches decode
- Geometry Decoder → Map Projection: projects geometry
src/map/geoDecode.worker.ts - Interactive Map → CSV Layer Registry: loads active layers
src/components/WorldMap.tsx - CSV Layer Registry → Remote Indexes: loads layer index
src/layers/csvLayerRegistry.ts - CSV Layer Registry → Content URLs: fetches CSV
src/layers/csvLayerRegistry.ts - CSV Layer Registry → CSV Parser: parses CSV
src/layers/csvLayerRegistry.ts - CSV Layer Registry → Region Assignment: checks regions
src/layers/csvLayerRegistry.ts - Interactive Map → External Features: loads features
src/components/WorldMap.tsx - Nationwide Layers → CSV Layer Registry: reads registered layers
src/data/nationwideLayers.ts - Interactive Map → Canvas Renderer: draws map
README.md - Canvas Renderer → Union Borders: dissolves borders
src/map/render/renderLayers.ts - Explorer → Interactive Map: navigates
README.md - Interactive Map → Place Details: opens selected details
README.md - Place Details → L3 Picker: offers L3 drilldown
README.md - Place Details → Info Dossiers: shows dossier
- Info Dossiers → Info Registry: queries dossiers
src/components/MarkdownInfoCard.tsx - Info Registry → Info Parser: parses entries
src/info/infoRegistry.ts - Info Registry → Remote Indexes: loads info indexes
src/info/infoRegistry.ts - Info Dossiers → Street View Embed: embeds Street View
src/components/MarkdownInfoCard.tsx - Street View Embed → Google Maps: embeds maps
README.md - Info Dossiers → Layer Size Controls: offers size tuning
src/components/MarkdownInfoCard.tsx - Info Dossiers → Article Writer: writes article