Skip to content

[Datahub]: Add interactive map filter to STAC viewer#1403

Merged
AlexianMasson merged 55 commits intomainfrom
dh-add-map-inside-stac-view
Nov 26, 2025
Merged

[Datahub]: Add interactive map filter to STAC viewer#1403
AlexianMasson merged 55 commits intomainfrom
dh-add-map-inside-stac-view

Conversation

@AlexianMasson
Copy link
Copy Markdown
Collaborator

@AlexianMasson AlexianMasson commented Nov 3, 2025

Description

This PR enhances the STAC (SpatioTemporal Asset Catalog) viewer with an interactive map and spatial filtering capabilities. Users can now filter STAC items by both temporal extent (via date pickers) and spatial extent (via map interaction).

Architectural Changes

Dependencies Updated:

  • Upgraded @geospatial-sdk/* packages from 0.0.5-dev.37 to 0.0.5-dev.40 in both root and package directories

Component Modifications:

  • StacViewComponent - Added spatial filtering logic
  • MapContainerComponent - Template refactor to have the map div as root and overlay component as ng-content + added resolvedExtentChange and extentChange events
  • CheckToggleComponent - Minor template improvements for better styling
  • RecordDataPreview.component - Fix STAC tab content with lazy loading.

Screenshots

Desktop :
image

Mobile :
image

Quality Assurance Checklist

  • Commit history is devoid of any merge commits and readable to facilitate reviews
  • If new logic ⚙️ is introduced: unit tests were added
  • If new user stories 🤏 are introduced: E2E tests were added
  • If new UI components 🕹️ are introduced: corresponding stories in Storybook were created
  • If breaking changes 🪚 are introduced: add the breaking change label
  • If bugs 🐞 are fixed: add the backport <release branch> label
  • The documentation website 📚 has received the love it deserves

How to Test

  1. Navigate to a dataset with STAC links: http://localhost:4200/dataset/sentinel2-l2a-sen2cor
  2. Test the spatial filter toggle
  3. Test the combined temporal + spatial filtering
  4. Set extreme value and test empty results state
  5. Test the responsive behavior of the STAC component

Notes

This work is sponsored by INRAE.

@AlexianMasson AlexianMasson changed the title DH: add map inside stac view DH: add map filter inside stac view Nov 3, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 3, 2025

Affected libs:
api-metadata-converter,api-repository,feature-catalog,feature-record,feature-router,feature-search,feature-map,ui-search,feature-editor,ui-inputs,feature-dataviz,ui-elements,feature-notifications,ui-catalog,ui-layout,ui-map,database-dump,util-data-fetcher,ui-dataviz,common-fixtures,util-shared,ui-widgets,data-access-gn4,util-app-config,common-domain,util-i18n

Affected apps:
datahub,metadata-converter,metadata-editor,webcomponents,search,demo,map-viewer,data-platform

  • 🚀 Build and deploy storybook and demo on GitHub Pages
  • 📦 Build and push affected docker images

@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from d6050de to ee305e4 Compare November 3, 2025 14:01
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 3, 2025

📷 Screenshots are here!

@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch 4 times, most recently from bdb8b96 to 225c90c Compare November 4, 2025 10:42
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from 225c90c to 07824e4 Compare November 4, 2025 14:54
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from 653e8ea to adbab71 Compare November 4, 2025 15:33
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch 4 times, most recently from 9c6a712 to f51c9fb Compare November 5, 2025 13:18
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from f51c9fb to d8ddf02 Compare November 5, 2025 13:35
jahow and others added 2 commits November 12, 2025 22:21
See the mat-tab doc:
https://material.angular.dev/components/tabs/overview#lazy-loading

Eagerly loading the content of the tab meant the OL map was created while detached from
the page, which in turn meant no valid size for the map
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from 07fbc38 to e5c7458 Compare November 13, 2025 16:13
@AlexianMasson AlexianMasson changed the title DH: add map filter inside stac view [Datahub]: Add interactive map filter to STAC viewer Nov 13, 2025
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from 3dceacd to 65df609 Compare November 14, 2025 11:08
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from c3f85f9 to 984b5f8 Compare November 19, 2025 15:48
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 19, 2025

📷 Screenshots for webcomponents are here!

@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch 2 times, most recently from 87f229c to ccc9ac7 Compare November 20, 2025 08:32
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from ccc9ac7 to fae58db Compare November 20, 2025 08:50
Copy link
Copy Markdown
Collaborator

@tkohr tkohr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for huge work and the continued refactoring on this @AlexianMasson ! I really like your solution for the stac-view.component and it works very smoothly. The tests for it should still be cleaned from timeouts and comments I think.

Also just noticed that we don't have any e2e tests on the spatial filters, not sure if we have time to add one or two.

In the future it would make sense to have the _resolvedExtentChange in the geospatial-sdk I guess, but the implementation in the map-conatiner.component seems acceptable for now.

(displayStac$ | async) && (selectedView$ | async) === 'stac'
"
>
<ng-template matTabContent>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the doc @jahow pointed to, it would make sense to put the contents of all four tabs in ng-templates (the other tabs only do so for the tab titles), I guess, but we can have a look at this in a separate PR.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can do an atomic PR to handle only those changes :)

@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch 4 times, most recently from fd33723 to 73ba74a Compare November 24, 2025 17:14
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from 73ba74a to 2344fac Compare November 24, 2025 17:17
@AlexianMasson AlexianMasson force-pushed the dh-add-map-inside-stac-view branch from d0a1a74 to 6d0412d Compare November 25, 2025 13:56
Copy link
Copy Markdown
Collaborator

@tkohr tkohr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the adaptions @AlexianMasson !

@AlexianMasson
Copy link
Copy Markdown
Collaborator Author

Thanks for the adaptions @AlexianMasson !

Thanks for the (looooong) review 😄

@AlexianMasson AlexianMasson merged commit 27e1de8 into main Nov 26, 2025
20 checks passed
@AlexianMasson AlexianMasson deleted the dh-add-map-inside-stac-view branch November 26, 2025 08:30
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.

5 participants