How yvind/omap-rs works
Omap-rs is a Rust library for reading, creating, editing, transforming, and writing OpenOrienteering Mapper .omap maps. The main workflow loads a file or starts from an empty/default map, edits map parts with symbol-linked objects and color definitions, optionally transforms paper coordinates through georeferencing, then writes the map. The map also carries templates, notes, and view settings. Paths and workflow stages reflect the tree and README; unsampled internals are shown only where documented, and their specific call wiring is left out.
Main entry points: omap.rs Omap API · mod.rs Map objects · symbol_set.rs Symbol set · map_parts.rs Map parts
Components 14
Map lifecycle
- Omap API
src/omap.rs
Map content
- Map parts
src/parts/map_parts.rs - Map objects
src/objects/mod.rs - Bezier geometry
src/objects/area_object.rs - Symbol set
src/symbols/symbol_set.rs - Symbol definitions
src/symbols/mod.rs - Color set
src/colors/color_set.rs
Spatial support
- Georeferencing
src/geo_referencing/geo_ref.rs - Map transform
src/geo_referencing/map_transform.rs
Map presentation
- Templates
src/templates/mod.rs - Map notes
src/notes.rs - View settings
src/view.rs
Other components
- Library user
- OMAP file
Connections 16
- Library user → Omap API: creates or loads
- OMAP file → Omap API: read by
- Omap API → OMAP file: writes
- Omap API → Map parts: manages
- Omap API → Symbol set: manages
- Omap API → Color set: manages
- Omap API → Georeferencing: manages
- Omap API → Templates: manages
- Omap API → Map notes: manages
- Omap API → View settings: manages
- Map parts → Map objects: holds
- Map objects → Bezier geometry: stores
- Map objects → Symbol set: references
- Symbol set → Symbol definitions: owns
- Georeferencing → Map transform: creates
- Library user → Map transform: uses