Repository navigation
Conversation
layers() now returns the tidal-flat drying tint as `flats` and the marsh overlay as `marsh`, beside `areas` and `symbols`. Before, the flats rode at the bottom of `areas` and the marsh at the bottom of `symbols`. A composer following the README stacked them over their own contours, soundings, coastline and land labels. style() already worked around this by filtering both layers out by id. It now places the two groups directly, with the same resulting layer order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The public layers() return-shape change has semver implications that depend on whether stacked PR #63 ships first, so release ordering and the next minor version require human verification.
No open issues 🎉
What changed in this PR
This pull request separates wetland fills into dedicated layer groups so composed MapLibre styles can position tidal flats beneath chart detail and marsh patterns beneath coastlines and labels, while preserving the complete style’s existing order.
Changes:
- Splits
layers()andchartLayers()intoflats,areas,marsh, andsymbols. - Updates
style()and the README composition recipe for correct wetland placement. - Expands tests for layer ordering, wetland placement, stable IDs, and tag-filter coverage.
| File | Description |
|---|---|
style/taginfo.test.ts |
Walks all four chart-layer groups when checking documented OSM keys. |
style/README.md |
Documents the four-group composition API and required placement order. |
style/layers/index.ts |
Separates tidal-flat and marsh layers into dedicated groups. |
style/index.ts |
Exposes the new groups and places wetland layers correctly in the assembled style. |
style/index.test.ts |
Verifies composed and complete-style wetland ordering, stable IDs, group contents, and filtering. |
Review effort: Lite
…ds-composed-sync * origin/own-the-base-map: Draw unknown-depth water in seascape's hazard tint # Conflicts: # style/index.ts
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
layers()now returns the two wetland fills in groups of their own, so a style composed from the README recipe can't paint them over chart detail.flatsholds the opaque tidal-flat drying tint and goes over the depth tints, under contours and soundings.marshholds the marsh tuft overlay and goes on the land fills, under the coastline and labels.Stacked onto #63, which added both layers. There the flats sat at the start of
areasand the marsh at the start ofsymbols, so[...myBaseLayers, ...areas, ...myLandLayers, ...symbols]drew the drying tint over a composer's soundings and contours, and marsh tufts over their coastline and land labels.style()worked around this by pulling both layers out by id. It now placesflatsandmarshdirectly, and the whole style's layer order is unchanged.chartLayers()andlayers()return{ flats, areas, marsh, symbols }.style()uses the groups instead of filtering by id.layers()entry, the module table, and the code comments describe the four groups.flatsandmarshseparately. A new test builds the README recipe over seascape's bathymetry and checks thattidal-flatssits undercontour-lines,contour-labelsandsoundings, and thatmarshessits under a coastline and a place label. It also checks thatareasandsymbolshold no wetland-layer layers.Semver
This changes the
layers()return shape of@openwaters/seamap. Measured against the last release (0.3.2), it's only additive:tidal-flatsandmarshesfirst appear in #63, and every id 0.3.2 put inareasandsymbolsis still there in the same order. If this ships in the same release as #63, the release is minor (0.4.0, which #63's new layers already need). If #63 ships first, this moves ids out ofareas/symbols. Under the versioning policy that is a breaking reorder, which in 0.x means the next minor bump.Review
No model review ran on this PR: the openwaters-review rounds weren't run. Verification:
npm test --workspace style(48 tests, with the sprite sheet built),npm run lint, andnpx oxfmt --checkall pass.🤖 Generated with Claude Code