gap: the crop parcels have no row in Map layers and cannot be switched off #223

Closed
opened 2026-08-30 08:37:36 +00:00 by viberfox-agent · 0 comments
Collaborator

Found while QA-ing what #203 shipped (#217).

What I did

Served the crop tree from a stand-in extractor (see #217), flew to the Flevoland
cell with the fields drawn, and opened Map layers (--ui layers) to switch
the new layer off — the first thing anybody does with a map layer they did not
ask for.

What happened

There is no row for it. The panel lists Public transport stops, Shops,
Buildings ▸ OSM 3D buildings, Map ▸ Trees / Grass / Street furniture / Road
textures / Water shading / Street labels / Flood defences / Street detail /
Aerial photography, then Life. The crop parcels appear in none of them, and the
only sign the layer exists at all is an attribution line far below the fold.

The fetch is ungated too: map_geometry's surfaces job calls
crops::load_crop_cell unconditionally, unlike the paving and marks beside it
which at least ride wants.furniture / the surveyed gates. So there is no
setting, no checkbox and no environment switch — over covered ground the tones
are simply on.

Flood defences is the precedent that makes this look like an oversight rather
than a policy: it is the same shape of thing (an additive PDOK register with its
own coverage manifest and its own attribution line) and it has a checkbox.

What a user would expect

A row under Map — "Crop parcels", "Netherlands only" in the sub-label the way
Aerial photography says "PDOK imagery — Netherlands only" — that turns the tones
off and leaves the generic green. Half a country's ground changing colour is
exactly the kind of thing the panel exists to explain and to undo.

Where the seam is

  • crates/cartopolis/src/systems/gui/data_layers.rs — DataLayers has no
    crops_enabled; the crop code appears only at the attribution line (~2516).
  • crates/cartopolis/src/systems/map/map_geometry.rs:463 — load_crop_cell is
    called with no wants.* gate, and ~537 extends the cell's meshes with the
    parcels unconditionally.
  • The keep-out at ~757 reads wants.grass, so the toggle would have to bump the
    same rebuild revision the coverage does
    (map_geometry ~928, crops::coverage_revision) or the tones would stay on
    screen until the cells were retired for some other reason — the failure mode
    the layer-toggle memory in this tree already records.
Found while QA-ing what #203 shipped (#217). ## What I did Served the crop tree from a stand-in extractor (see #217), flew to the Flevoland cell with the fields drawn, and opened **Map layers** (`--ui layers`) to switch the new layer off — the first thing anybody does with a map layer they did not ask for. ## What happened There is no row for it. The panel lists Public transport stops, Shops, Buildings ▸ OSM 3D buildings, Map ▸ Trees / Grass / Street furniture / Road textures / Water shading / Street labels / **Flood defences** / Street detail / Aerial photography, then Life. The crop parcels appear in none of them, and the only sign the layer exists at all is an attribution line far below the fold. The fetch is ungated too: `map_geometry`'s surfaces job calls `crops::load_crop_cell` unconditionally, unlike the paving and marks beside it which at least ride `wants.furniture` / the surveyed gates. So there is no setting, no checkbox and no environment switch — over covered ground the tones are simply on. Flood defences is the precedent that makes this look like an oversight rather than a policy: it is the same shape of thing (an additive PDOK register with its own coverage manifest and its own attribution line) and it has a checkbox. ## What a user would expect A row under **Map** — "Crop parcels", "Netherlands only" in the sub-label the way Aerial photography says "PDOK imagery — Netherlands only" — that turns the tones off and leaves the generic green. Half a country's ground changing colour is exactly the kind of thing the panel exists to explain and to undo. ## Where the seam is * `crates/cartopolis/src/systems/gui/data_layers.rs` — `DataLayers` has no `crops_enabled`; the crop code appears only at the attribution line (~2516). * `crates/cartopolis/src/systems/map/map_geometry.rs:463` — `load_crop_cell` is called with no `wants.*` gate, and ~537 extends the cell's meshes with the parcels unconditionally. * The keep-out at ~757 reads `wants.grass`, so the toggle would have to bump the same rebuild revision the coverage does (`map_geometry` ~928, `crops::coverage_revision`) or the tones would stay on screen until the cells were retired for some other reason — the failure mode the layer-toggle memory in this tree already records.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jeroen/cartopolis#223
No description provided.