How opengeos/anymap-studio works
AnyMap Studio is an Electron GIS desktop app for loading geospatial data, managing layers and projects, and viewing them through a selectable map backend. The primary workflow is to choose a backend, add local or URL-based layers, inspect and style them, then save the project or export results. Navigation, drawing, measuring, and coordinate tools complement that workflow. The README documents eight backends and several formats; sampled implementation confirms MapLibre and selected import paths, so other adapters and capabilities are represented at their documented source paths without asserting their readiness. Some UI wiring is unsampled.
Main entry points: projectStore.ts Project store · MapCanvas.tsx Map canvas · App.tsx App · uiStore.ts UI store
Components 27
Desktop workflow
- App
src/App.tsx - Electron main
electron/main.ts - IPC bridge
electron/preload.ts - Landing page
src/components/landing/LandingPage.tsx - App shell
src/components/layout/AppShell.tsx - Electron API
src/types/electron-api.d.ts
Map rendering
- Backend selector
src/components/landing/BackendSelector.tsx - Map canvas
src/components/map/MapCanvas.tsx - Backend factory
src/backends/index.ts - Backend capabilities
src/backends/capabilities.ts - Map adapters
src/backends/adapters - MapLibre adapter
src/backends/adapters/MapLibreAdapter.ts
Layer workflow
- Layer panel
src/components/layers/LayerPanel.tsx - Layer item
src/components/layers/LayerItem.tsx - Style editor
src/components/layers/StyleEditor.tsx - Attribute table
src/components/layers/AttributeTable.tsx - Format parsers
src/utils/parsers.ts - Geospatial utilities
src/utils/geo.ts
Project state
- Project store
src/stores/projectStore.ts - Project format
src/types/project.ts - Export utilities
src/utils/export.ts
Map tools
- Toolbar
src/components/layout/Toolbar.tsx - Drawing tool
src/components/tools/DrawTool.tsx - Measurement tool
src/components/tools/MeasureTool.tsx - Map controls
src/components/map/MapControls.tsx - UI store
src/stores/uiStore.ts
Other components
- GIS user
Connections 28
- GIS user → App: uses
- App → Landing page: shows
- App → App shell: shows
- Electron main → IPC bridge: exposes IPC
- IPC bridge → Electron API: implements bridge
- Electron main → App: sends project events
- App → Project store: loads and saves
- Backend selector → UI store: selects view
- Map canvas → Backend factory: creates backend
- Backend factory → Map adapters: dispatches by type
- Backend factory → MapLibre adapter: initializes
- Map canvas → Project store: reads layers and view
- Map canvas → Format parsers: parses dropped data
- Map canvas → Geospatial utilities: calculates bounds
- Layer panel → Format parsers: parses imports
- Layer panel → Project store: updates layers
- Layer panel → Map canvas: adds backend layer
- Layer item → Project store: updates layer state
- Style editor → Project store: updates styling
- Attribute table → Project store: reads layer data
- Project store → Project format: models project
- Toolbar → Project store: saves project state
- Toolbar → Geospatial utilities: computes bounds
- Toolbar → UI store: sets active tool
- Drawing tool → UI store: uses tool state
- Measurement tool → UI store: uses tool state
- Map controls → UI store: uses UI state
- Toolbar → Export utilities: exports data