Full Apollo Element Coverage
Edit every base_map entity — Lane, Junction, PNC Junction, ParkingSpace, Crosswalk, Signal, StopSign, SpeedBump, YieldSign, ClearArea, Boundary, Region — with first-class visual tooling.
Import, visualise, edit, derive topology, recompute overlaps, and export Apollo base_map data — across Web and Electron desktop, in binary and text protobuf round-trip.
Edit every base_map entity — Lane, Junction, PNC Junction, ParkingSpace, Crosswalk, Signal, StopSign, SpeedBump, YieldSign, ClearArea, Boundary, Region — with first-class visual tooling.
Polyline, Catmull-Rom, Bezier, Arc, Rotated Rect, and Polygon tools — plus click-to-draw, double-click / Enter to commit, control point dragging, Alt smooth-toggle, centre dragging, multi-target alignment and snapping.
Predecessor / successor / neighbor / self_reverse / junction_id are recomputed from lane endpoint coincidence, geometric adjacency, reverse twins, and junction polygon intersection — incrementally on edit.
overlap_id values are maintained from geometric truth across import / edit / export. Lane × crosswalk region overlaps can be pinned in the Inspector to survive recomputation.
Imports and exports .bin, .txt, and .pb.txt protobuf encodings; preserves header, projection metadata, and untouched fields so a third-party Apollo tool can re-consume the result.
Menubar, ToolStrip, Activity Bar, resettable Dockview workspace, Outline, Layer Tree, Search, Inspector, Timeline, and StatusBar — every panel can be docked, floated, or rearranged.
The Cold Layer maintains a spatial index, decoration cache, and RBush in a Web Worker; the Hot Layer redraws live previews per frame on the main thread. Phase E incremental decoration only re-renders affected lanes.
Vite-powered web editor for development; Electron shell for desktop, with cross-platform packaging into Linux AppImage, macOS DMG, and Windows NSIS installers.
The desktop build ships an offline activation flow bound to machine fingerprint; edit actions are uniformly intercepted by editableGuard until activated.
editorMachine is the single source of truth for editor interaction, covering idle / drawing / editing states, working hand in hand with useDrawCommit and useActionDispatcher to keep undo / redo and mid-draw cancel coherent.
components → hooks → store → lib → core, one-way imports. The entityOps anti-corruption layer shields the UI from Apollo proto v2 upgrade risk — UI code sees only the abstract MapEntity model.
typecheck, ESLint, Prettier, Vitest, benchmarks with regression budgets, husky + lint-staged pre-commit — performance regressions are auto-blocked at PR time.
| If you want to… | Start here |
|---|---|
| Try Apollo Map Studio for the first time | Quick Start |
| Import an Apollo base_map | Import → Import Deep Dive |
| Draw lanes and connect them | Drawing Tools → Drawing Lanes |
| Understand coordinates & projection | Coordinate System |
| Edit attributes in the Inspector | Inspector |
| Export the map back to Apollo | Export → Export Deep Dive |
| Activate a desktop license | License Activation |
| Hack on internals | Architecture Overview |
| Add a new action / tool / element | Recipes |
| Contribute via PR | Development Setup |
entityOps.editorMachine, the single truth source for interaction.v1.0.0 — released.