qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.65k stars 3.01k forks source link

[Feature] Data Source Manager STAC search initial implementation #59534

Open uclaros opened 5 days ago

uclaros commented 5 days ago

Description

This is the second part of the implementation of https://github.com/qgis/QGIS-Enhancement-Proposals/issues/300

A new page has been added to the Data Source Manager that allows interaction with STAC API endpoints.

image

Filters for searching the catalog can be supplied by a dialog accessible through the Filters button:

image

The results list allows for endless scrolling, fetching more contents as it is scrolled down. For STAC Items containing Assets on a cloud optimized format (COG, COPC, EPT for now) the Add Layers button is enabled allowing to add all such Assets as layers, similar to how it can be done using the QGIS browser.

STAC Catalogs that do not support STAC API /collections and search endpoints can only be used QGIS browser and not the data source manager.

github-actions[bot] commented 5 days ago

🪟 Windows builds

Download Windows builds of this PR for testing. Debug symbols for this build are available here. (Built from commit 6bb127e171815afe6274888f6ae1e16c35d8d9e2)

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing. (Built from commit 6bb127e171815afe6274888f6ae1e16c35d8d9e2)

nyalldawson commented 5 days ago

STAC Catalogs that do not support STAC API /collections and search endpoints can only be used QGIS browser and not the data source manager.

What happens when you try to connect to these via DSM? One thing we could do here is fallback to using the browser model with the root item being the connection, so that users could still utilise these connections via DSM. (This is the approach we use with eg the ArcGIS REST page in DSM -- when you connect to a service then we just use the browser model showing only the content from that connection. It's a nice approach because we already have all that code already for the browser panel..)

rouault commented 4 days ago

very cool ! Maybe it could be worth extending tests/src/core/testqgsstac.cpp ?