Skip to main content

Known Limitations

chartplotter runs the official IHO S-101 Portrayal Catalogue, so most everyday ENC features draw correctly: depth areas and contours, soundings, coastline and land, buoys and beacons, lights (including sectored and directional lights), restricted/anchorage areas, and text labels.

But the portrayal is not complete, and this project is an AI-built experiment and learning tool — do not use it for navigation. This page is an honest list of what does not render fully today, taken from the engine code rather than from a wishlist. When a feature can't be portrayed, the result is one of three things: it falls back to the magenta unknown object mark, it is silently dropped, or a part of it (an arc, a pattern) is missing.

Features dropped on a rule error

Some S-101 line and area rules need parts of the S-57 spatial topology that the portrayal host does not model yet. When such a rule errors, the feature is suppressed — drawn as nothing rather than as a placeholder — so it simply does not appear. This is the most significant gap: an affected feature is missing, not just mis-styled.

Geometry-construction instructions

The catalogue builds some figures from geometry-construction instructions (AugmentedRay, AugmentedPath, ArcByRadius, CoverageFill). The engine does not lower these into tile geometry, with one exception:

  • Handled: sectored and directional light figures — their legs and arcs are drawn (tessellated per zoom into a screen-space layer).
  • Not handled: any other feature that relies on these constructions loses that constructed geometry (the rest of the feature — its symbol, fill, or label — still draws).

Time-dependent portrayal is ignored

Date and time modifiers (Date, Time, DateTime, TimeValid) are no-ops, so seasonal or time-varying features are always shown, regardless of the current date. There is no notion of "show this buoy only in summer."

Alerts and indications are not surfaced

The S-100 alert mechanism (AlertReference, Warning, Error) is not wired to anything. chartplotter does not raise guard-zone alarms or any other indication — consistent with it being a viewer, not a certified ECDIS.

Text placement

Labels are emitted with simple offsets. There is no S-100 text-placement or decluttering logic; label collisions are left to the map renderer's defaults, so dense areas can over- or under-label compared to a reference chart.

Unknown objects and unrecognized instructions

  • An object class with no S-101 rule is drawn as the magenta unknown object mark (S-52 §10.1.1 parity) — a visible placeholder, not the real symbology.
  • Any drawing instruction the lowering step does not recognize is skipped.

S-102 bathymetry

S-102 gridded bathymetric surfaces are a work in progress and are not yet portrayed.