Skip to content

Add support for remote endpoints for Files other than COG and pmtiles #3233

@jo-chemla

Description

@jo-chemla

Is your feature request related to a problem? Please describe.
When adding data to a deckgl map, currently supported flows are

  • adding Files from disk or storage
  • loading a mapconfig.json
  • or loading a tileset (vector tiles, raster tiles or WMS).

Tileset option is used to load tiled datasets which are served by a remote server endpoint which uses a

  • either a templated TMS/XYZ string /{z}/{x}/{y} for both raster and vector pbf/mvt tiles
  • or internally tiled file format like COG (from STAC item) or pmtiles
  • also WMS GetCapabilities returns layers with their default styling (no-legend)

Therefore, only internally tiled datasets (COG and vector/raster pmtiles) can be loaded into a keplergl map instance from remote endpoints, and not other standard, static vector files like geojson, arrow, geoparquet or csv.

EDIT: geojson files can be added via the Load Map using URL, pasting a geojson url if it has the right extension. There is no way to indicate to keplergl what is the file being loaded, which makes it harder for url endpoints that do not include the file extension, like those with SAS-keys.

Describe the solution you'd like
It would be great to also allow loading these standard geodata files like GeoArrow, GeoParquet, not only from disk and cloud-storage, but also via a remote url endpoint string. This would let users load directly where they reside, without needing to download them and loading from disk. Also, would make sharing the map url config.json way lighter, with the config json simply pointing to the remote endpoint.

This would also make it easier to share map configs without duplicating the vector datasets into the map-config, by fetching the dataset from where they reside. Enabling this for GeoArrow and Geoparquet would make it possible to share remote endpoints datasets for the vector binary single file that keplergl supports, instead of ascii, sometimes heavy, geojson.

Side-note: it could also be useful to allow loading COG without them being served as a STAC item by a TiTiler instance but that's probably the matter for another thread.

Describe alternatives you've considered
Currently, the user can download the remote vector file from where they reside, and load from disk into the map. However, this prevents sharing map via map config json which include "small" vector files.

Additional context
Not sure what would make the most sense, between adding a new section to the Add Data modal Load Files | Tileset | Load Remote Files | Load Map using URL | Load from Storage, or a sub-modal into Load-Files like currently done for tileset, to chose between Local and Remote Files.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions