Expand description
Read-only queries against a chart GeoPackage.
The second layer of the navigation core, and the first that touches a file.
Above [nav_math], below anything that knows what a route is: this
answers “what lies in this corridor of water, and is it safe for a
vessel with this safety contour”, and nothing else.
§Why not the vector tiles
The display pipeline’s tiles are unusable here. Tippecanoe cuts geometry at tile boundaries, quantises it onto a grid, generalises per zoom level and drops features out of overfull tiles – all correct for drawing, all fatal for deciding whether a line crosses a rock. The GeoPackage is the same source data with whole geometries and full precision.
§Why no SpatiaLite
The bounding-box prefilter is a plain SQL join against the R-Tree index every GeoPackage already carries; the exact geometry test happens here in Rust. That keeps the chart a file with no extensions to install, which is what lets the same file be read on every client platform.
§What the mariner decides
The file itself carries no notion of what is safe. The safety
contour is supplied by the caller (Vessel) and is the same
value the chart is drawn with, so there is one source of truth for
which water counts as safe.
Structs§
- Chart
Store - A chart, open for reading.
- Feature
- One charted object.
- Finding
- One thing found along a leg.
- Leg
- One leg of a route, with the water it is allowed to wander into.
- Segment
- A short piece of a leg, with the band around that piece.
- Vessel
- What the vessel needs to be safe.
Enums§
- Attribute
- One value of one S-57 attribute.
- Sailing
- How a leg is drawn between its two ends.
- Severity
- How much a finding matters.
- Store
Error - Anything that can go wrong reading a chart.
Functions§
- check_
leg - Checks one leg against a chart.