Skip to content

Feat/crs basemap - #559

Open
MaxNumerique wants to merge 39 commits into
nextfrom
feat/crs_basemap
Open

MaxNumerique wants to merge 39 commits into
nextfrom
feat/crs_basemap

Conversation

@MaxNumerique

Copy link
Copy Markdown
Contributor

No description provided.

@MaxNumerique
MaxNumerique force-pushed the feat/crs_basemap branch 4 times, most recently from 1d1f999 to bc75e37 Compare November 2, 2026 15:35
MaxNumerique and others added 13 commits November 3, 2026 09:33
- Style, opacity and attribution; the basemap is built around the
  georeferenced data (data without CRS left out), at the top of the data,
  and rebuilt when their ids, CRS or extent change (e.g. after a re-align).
- Obsolete or failed builds are cleaned up (viewer + back), a failed build
  goes back to "none"; style and opacity are saved with the project.
- projectCrs: CRS of the oldest georeferenced data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Basemap button disabled until the project has a CRS; the style menu closes
  after a choice and holds an opacity slider (10-100 %).
- Attribution shown at the bottom of the viewer while a basemap is displayed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The basemap menu had its opacity slider in the pill card meant for one
row of buttons: icons were clipped and the grid overflowed. It gets its
own rounded card: buttons in a row, then the opacity slider with its
value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- "Map around" in the basemap menu shows or hides the flat map around
  the draped top surfaces (shown by default).
- The store sends the georeferenced data and the switch to the viewer
  after each build (mesh.basemap_drape); exported with the project.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The basemap follows the stored project CRS and shows Satellite on its
own as soon as data are in that CRS; data in another CRS stay out of its
extent. One map is visible at a time and the last chosen one comes back
when the basemap is shown again. Each map keeps its own opacity; only
the visible one reaches the viewer. The project saves the visible map
and the opacity of each map; a project saved with the toolbar tool
shows Satellite with its single opacity on every map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A virtual "Basemap" category comes first in the object tree, with one
row per map (Satellite, Streets, Topo), out of the data sort and
filters. A map eye shows that map alone; the category eye hides the
basemap or shows the last map again. The tree selection always mirrors
the basemap state, and basemap rows never reach data visibility, hover,
focus or the CRS tooltip. A right click opens the basemap menus, without
info card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The context menu of a map sets its opacity (slider in percent). The
context menu of the Basemap category holds the "Map around" switch,
shared by every map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The basemap is driven from the object tree: the toolbar button, its
style buttons, opacity slider and switch are gone. The Esri attribution
moves to the bottom left corner, the bottom right one now holds the
project CRS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hout data

Only user clicks on the tree eyes choose the visible map now. Clearing
and importing a project rewrite the selection with data only: that used
to hide the basemap after every import; the selection now shows the
basemap state again instead. Basemap rows also stay clickable while a
search filters the tree. The Basemap category only shows when at least
one data is in the project CRS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The basemap no longer opens its own read of every data with its
geometry: it uses the light CRS items of the crs store, which already
hold the id and the CRS it needs for its extent and its rebuilds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxNumerique and others added 7 commits November 4, 2026 11:06
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… next one sooner

A detail left in a wider view showed as a sharp rectangle until the next one
arrived. It is now removed at the first camera change that leaves its area.
The rest delay goes from 400 to 250 ms, and the previous detail is deleted on
the back after the new one is rendered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The legacy Esri/toolbar project format is gone (never released).
- The detail store reuses the basemap store viewer calls and types.
- The tree derives basemap rows from the visible maps: basemap ids are
  no longer stored in, nor exported with, the treeview selection.
- A map shown again but missing from the detail drops the detail.
- tiles_folder is no longer forwarded to the viewer.
- The detail store is created by the viewer UI; resetCount is replaced
  by a reset action listener.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxNumerique
MaxNumerique marked this pull request as ready for review November 4, 2026 14:09
MaxNumerique and others added 7 commits November 4, 2026 15:17
- basemap_helpers/builds: the build lifecycle of the basemap.
- basemap_helpers/viewer: viewer and back calls of a map, coalesced runs.
- basemap_helpers/detail_view: viewport, visible area and detail request.
- basemap_helpers/extent: data extent and per-map defaults.

The helpers take their stores once, at store creation: a request still
running after a project reset never reaches the stores of the next one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A dragged slider no longer queues one detail request per step, and an
opacity or crop change no longer schedules a detail refresh: only a
change of the visible maps does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hiding the basemap sends its layers all invisible instead of deleting
it on the back: showing it again only recomposes, without a new
download. Its attribution and detail go while no map is visible, and a
hidden basemap is removed once the data changes, as it would be out of
date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a project import two rebuilds overlap: the first one, superseded while
its map was applied, gave back the maps it had found, emptying those of
the newer build. The basemap was then shown with no visible layer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant