Skip to content

Feat/crs basemap - #559

Draft
MaxNumerique wants to merge 40 commits into
nextfrom
feat/crs_basemap
Draft

MaxNumerique wants to merge 40 commits into
nextfrom
feat/crs_basemap

Conversation

@MaxNumerique

Copy link
Copy Markdown
Contributor

No description provided.

MaxNumerique and others added 19 commits October 22, 2026 14:47
OpenGeode geosciences lists the same geographic CRS for 2D and 3D data:
the list is cached once, whatever the object type, instead of once per
type. It is still only requested when a CRS selector is shown, and a
failed request is not cached. The back keeps checking each CRS against
the list of the data dimension.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxNumerique and others added 4 commits November 2, 2026 14:33
The project CRS was deduced on the fly from the oldest georeferenced
data. It is now a state of the crs store: the first georeferenced data
sets it, then only an explicit project CRS change does. It is exported
with the project and restored on import; a project saved before falls
back to the CRS of its oldest data. The store also lists the data whose
CRS differs from the project one (data without CRS are not listed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A warning icon follows the name of a data whose CRS differs from the
project one, with a tooltip naming both CRS. The rows read the store
list, so the whole tree costs a single database query.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A compact button in the bottom right corner of the scene, under the XYZ
axes, shows the project CRS ("No CRS" before the first georeferenced
data). A click asks the host app for a project CRS edit; it is disabled
when no app hosts the dialog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A project saved without a project CRS fell back on the stored items, but
they are added after the store imports, with the import time as creation
date: the project CRS ended up random. The fallback now reads the
snapshot items, which keep their original creation date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxNumerique and others added 3 commits November 2, 2026 15:32
The project CRS follows its data: as soon as every georeferenced data is
in one CRS, that CRS becomes the project one; mixed data keep the
current project CRS. Data without CRS are now listed as not in the
project CRS. The CRS features read the data once, through a light query
that keeps only id, name, crs and creation date, instead of copying
every item with its geometry on each change. sameCrsState also treats
two data without CRS as in the same state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Data left without CRS while the project has one get the warning icon,
with a tooltip asking to georeference them. The project CRS widget is
larger and moved away from the corner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Loading a project added its data one chunk at a time after the project
CRS was restored: on the first data alone, the project CRS followed
them and the saved one was lost. The project CRS is now restored once
every data item is added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A click on the warning icon of a data opens its CRS dialog, when the app
hosts it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxNumerique and others added 13 commits November 2, 2026 16:27
- 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>
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