Skip to main content

Crate navcore_enc_store

Crate navcore_enc_store 

Source
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§

ChartStore
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.
StoreError
Anything that can go wrong reading a chart.

Functions§

check_leg
Checks one leg against a chart.