Skip to main content

Features

What GeoLens does, capability by capability: finding data in the catalog, building maps from it, running analysis where the data already lives, serving it over open standards, and keeping the whole thing running afterwards.

Create and share maps

Compose multi-layer maps in minutes

Combine vector and raster datasets from your catalog with point-and-click layer controls. Pick basemaps, reorder layers, adjust styling, and publish a shareable map URL without writing SQL or leaving the browser.

  • Drag-and-drop layer ordering and visibility
  • Save and share maps via share links with optional expiration presets (1, 7, 30, or 90 days)
  • Embed maps in any webpage

Read the docs

GeoLens map builder showing the multi-layer "Restless Earth" map — earthquakes, volcanic eruptions, tectonic plate boundaries, and a quake-intensity heatmap over global relief — with all seven layers in the stack and the earthquake style editor open

Analyze in place

Run spatial analysis where the data lives

Buffer, clip, dissolve, spatial join and more run server-side in PostGIS, straight from the map builder. Preview the output on the map before you commit, then materialize it as a new catalog dataset. The hurricane exposure map shown here was built entirely inside GeoLens from public NOAA storm tracks.

  • Buffer, centroid, clip, dissolve, spatial join, measure, select by location, and intersect on any vector layer
  • Live ephemeral preview on the map before anything is saved, for every operation except dissolve
  • Materialize results as new catalog datasets, ready to search and share

Read the docs

GeoLens map builder on the Hurricane Exposure map with the Analysis panel open: a Buffer operation configured on the storm-track layer, beside a coastal choropleth of how many major hurricanes reach each region

Ingest the formats you already have

Upload, validate, publish

Drop a Shapefile, GeoPackage, GeoJSON, GeoParquet, CSV, XLSX, or GeoTIFF and GeoLens handles validation, CRS inspection, column sampling, and catalog indexing automatically. Metadata fills in from the file; you just click publish.

  • Shapefile, GeoPackage, GeoJSON, GeoParquet, CSV, and XLSX, plus GeoTIFF and COG rasters
  • Import from WFS, ArcGIS FeatureServer, and OGC API URLs, or register existing tables in the GeoLens PostGIS database in place, with no copy
  • Automatic schema + CRS detection with sample-value preview
  • Optional title/summary overrides before commit

Read the docs

GeoLens dataset detail page post-ingest showing metadata fields, geometry type, feature count, and an extent thumbnail

Raster and VRT mosaics

Mosaic and serve large rasters at scale

Stitch multiple Cloud-Optimized GeoTIFFs into a single VRT mosaic, then serve raster tiles via Titiler, with band selection, colormaps, and min/max stretch controls, plus a direct COG download from the dataset page.

  • VRT mosaics stitched from multiple raster sources
  • Cloud-Optimized GeoTIFF (COG) serving and download
  • Browse and import satellite imagery with STAC search, filtered by collection, date, and bounding box
  • Colormap and stretch controls for single-band rasters
  • Titiler-backed tile serving with no custom tile server to run

Read the docs

GeoLens map builder rendering the Matterhorn as a 3D terrain mesh — a Virtual Raster mosaic of dozens of swissALTI3D COG tiles served as tiles via Titiler — with labeled peaks, climbing routes, the layer stack, and a legend

AI-assisted exploration

Ask questions about your data in plain language

Configure an OpenAI-compatible endpoint or Anthropic key and chat with your GeoLens catalog. Ask which datasets cover a region, request a filtered layer, or inspect spatial relationships in natural language.

  • Works with OpenAI-compatible endpoints or Anthropic keys
  • Map builder context-aware - AI sees your active layers
  • Reads metadata, attributes, and spatial extent to answer questions
  • Previews a buffer, a centroid, or a clip against another layer straight from the conversation

Read the docs

GeoLens "Ask AI" assistant panel open beside the "Restless Earth" tectonics map, showing a plain-language request to enlarge the earthquake markers and the assistant's confirmation that it applied the change

Role-based access control

Fine-grained control for your team

Assign roles, approve or reject users, and scope dataset visibility per dataset. GeoLens ships with admin, editor, and viewer roles plus JWT-based sessions and OAuth (Google, GitHub, Microsoft, OIDC).

  • Admin, editor, and viewer roles with per-dataset permissions
  • OAuth sign-in with Google, GitHub, Microsoft, and any OIDC provider
  • Audit-log viewing and filtering for activity tracking

Read the docs

GeoLens admin users page showing the user list with role assignments, approval status, and per-user actions

Programmability

Automate & integrate

Everything you do in the UI is scriptable. Drive catalogs, datasets, and maps from the command line or your own code: define a catalog as a manifest, commit it to version control, and apply it in CI. The CLI and SDKs talk to the same open APIs.

CLI

Script catalogs and manifest-as-code from your terminal. Installs the geolens command.

pip install geolens-cli

Python SDK

Build pipelines and integrations in Python against the full GeoLens API.

pip install geolens

TypeScript SDK

Embed GeoLens in JavaScript and TypeScript apps with a typed client.

npm install @geolens/sdk

MCP server

Point Claude Code, Cursor, or Codex at your catalog: six read-only tools for dataset search, schemas, features, maps, and sandboxed SQL queries.

pip install geolens-mcp

GeoParquet in, GeoParquet out: export any vector dataset and query it straight from DuckDB.

INSTALL spatial; LOAD spatial;
SELECT * FROM 'my-dataset.parquet' LIMIT 10;

Standards support

OGC API Features and Records

GeoLens serves OGC API Features and Records with CQL2, plus STAC and DCAT 3 metadata, so every dataset is reachable by standards-aware clients and your catalog travels in open formats. The Features and Records APIs return their advertised classes at /conformance.

Features API

Read and filter geospatial features by bounding box. Part 1 (Core); CQL2 filtering is available on the catalog Records collection.

  • • Core
  • • GeoJSON

Records API

Discover datasets and records via OGC-standard catalog queries: browse collections, filter by metadata, and retrieve individual records as JSON.

  • • Record Core
  • • Record Query Parameters
  • • Sorting
  • • JSON
  • • CQL2 Text
  • • CQL2 JSON
  • • Basic CQL2

Read the docs

Day-to-day operations

The parts that matter after the first import

A catalog spends most of its life being maintained rather than built. Staleness, desktop client access, monitoring, backups, and the language people read it in all ship with the stack.

Source freshness

Datasets imported from an upstream source record when they were last refreshed and when GeoLens last reached that source. Give one an update frequency and the catalog labels it fresh, due, or overdue, on the dataset page and in search results. The label is advisory. GeoLens reports what it last saw rather than polling the upstream system.

Read the docs

API keys for desktop GIS

Each person issues their own keys from settings, names them, and revokes them. A key can be read-only, and it authenticates the OGC API and STAC endpoints, so QGIS or ArcGIS points straight at a collection URL. Send it as an X-Api-Key header. A query-parameter form still works for tools that cannot set headers, but it is deprecated: the key ends up in access and proxy logs.

Read the docs

Prometheus metrics

The API and the worker each serve /metrics in Prometheus format: request latency, job queue depth, refresh runs, database pool use, and tile cache hits. A scrape config, alert rules, and a Grafana dashboard ship in the repository. The endpoint stays inside the Docker network, and the bundled Nginx returns 404 for it at the public edge.

Read the docs

Backups and restore

A backup container starts with the stack and dumps the database nightly, together with the upload staging volume and the cluster roles. It keeps seven daily and four weekly sets and can push them to S3-compatible storage. Restoring runs from one script, and the runbook covers verification, roles, and the object-storage step you do by hand.

Read the docs

Four interface languages

The product interface is translated into English, Spanish, French, and German. GeoLens picks one from the browser on a first visit, and anyone can change it in settings. A parity test fails the build when a locale falls behind, so the four stay in step.

Install GeoLens with one command

Run the public installer, log in, and upload your first dataset. It lands on your own infrastructure, not ours. The Quickstart also covers the source checkout path.

curl -fsSL https://getgeolens.com/install.sh | sh
Read the Quickstart Integrate via the API

Or script it: automate GeoLens from the command line or your own code.