Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions docs/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ kepler.gl, see the [Comparison](comparison.md).
- **Basemaps**: OpenFreeMap, Protomaps, EOX Sentinel-2 cloudless, and Openbasiskaart, with stacking of multiple raster basemaps, blank background support, and double-click to swap the core basemap from the layer panel
- **Planetary basemaps**: Mars and the Moon (OpenPlanetaryMap), plus Mercury, Venus, the Galilean moons (Io, Europa, Ganymede, Callisto), Titan, Pluto, and Charon (USGS Astrogeology, reprojected to Web Mercator by the tiles Worker). A per-project ellipsoid drives distance, area, and scale measurements from that body's radius, and a planet switcher sits in the Layers panel
- **Toggleable controls**: navigation, fullscreen, geolocation, globe, terrain, scale (metric, imperial, or nautical), attribution, and logo, plus a double-click terrain control for setting vertical exaggeration
- **On-map helpers**: a right-click context menu for reading coordinates and quick actions, and a Gridlines coordinate-grid overlay with edge labels and a UTM easting/northing grid mode
- **On-map helpers**: a right-click context menu that reads out and copies the clicked coordinate, opens it in Google Maps or Google Earth, and carries a **Quick analysis** submenu — buffers, drive- and walk-time isochrones, and a viewshed, each run on the clicked point with no dialog and no point layer to create first (the same submenu on a layer row runs buffers, centroids, convex hull, and bounding box over the whole layer) — plus a Gridlines coordinate-grid overlay with edge labels and a UTM easting/northing grid mode
- **Interactive viewshed**: right-click anywhere and get what is visible from that spot within 2, 5, or 15 km, computed from the same public terrain tiles the map already renders — no DEM to find, download, or load, and 3D terrain need not even be on. The result is an ordinary image overlay layer, so it gets opacity, ordering, zoom-to, and project save for free. Earth curvature and refraction are not modelled; the Whitebox **Viewshed** tool remains the rigorous DEM-in-hand option
- **Status bar readouts**: the pointer coordinate in decimal degrees, DMS, DDM, or UTM (click to cycle, or set it in Settings; UTM reuses the projection that draws the Gridlines grid, and falls back to degrees outside its valid latitude band), the ground elevation under the pointer, camera altitude above sea level as Google Earth-style **Eye alt** — scaled to the active celestial body, so it stays right on a Mars or Moon basemap — plus zoom, bearing, pitch, and the view bounding box
- **Pointer elevation** resolved from the map's own 3D terrain when it is enabled (instant, offline, nothing leaves the device) and otherwise from a public elevation API after the pointer settles, cached per cell, Earth-only, off by default, and gated behind an explicit consent notice
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
- **View menu**: viewport history navigation, a reset pitch and bearing control, a distinct north arrow, and View in Google Maps and View in Google Earth actions
- Multi-map grid that splits the workspace into a grid of synchronized map views, so you can compare basemaps, layers, or time steps side by side, with any **secondary** pane switchable to an optional CesiumJS 3D globe via its 2D/3D toggle — the primary map is always MapLibre (camera-synced with the 2D maps; requires a Cesium Ion token — see [Optional 3D globe credentials](getting-started.md#optional-3d-globe-credentials-cesium-ion))
- Timelapse mode that animates annual cloudless basemaps — EOX Sentinel-2 and NASA GIBS providers (Landsat/WELD and MODIS land cover) — with a provider picker and legend
Expand Down Expand Up @@ -97,6 +100,7 @@ kepler.gl, see the [Comparison](comparison.md).
- Local grids are colormapped in the browser from the same colormap catalog the Style panel uses, added as image overlays, and fitted to the camera on add, so Zoom to layer has a real extent to fly to
- A hyperspectral cube gains an RGB band combination picked by wavelength
- Identify reads a pixel's value off the map and, for a cube, walks the band axis to chart a spectral signature against wavelength — up to six sampled points, each drawn as a numbered dot in its chart color, compared in a draggable and resizable window over the map and exported as PNG or CSV
- The same spectral profile works on any **multiband GeoTIFF or COG**, not just NetCDF/HDF — click a stacked Landsat or Sentinel scene to compare the response of water, vegetation, and asphalt across every band. Reads are range requests for the tile containing the pixel rather than the whole scene, the click is reprojected into the raster's own CRS, and the chart plots against wavelength when the file declares one per band and against band number otherwise
- A **3D image cube** view renders the scene as its six exterior faces with draggable slice cuts, reading windowed and strided so a full EMIT reflectance variable stays within what the browser can hold

## Attribute data and expressions
Expand All @@ -122,7 +126,7 @@ kepler.gl, see the [Comparison](comparison.md).
## Map tools, printing, and media

- Controls menu
- Measure (including terrain-aware 3D measurements), Bookmark, Minimap, View State, and a Search panel
- Measure (including terrain-aware 3D measurements and a heading readout — a true great-circle initial bearing with a 16-point compass label, plus a final bearing on lines long enough for the great circle to converge), Bookmark, Minimap, View State, and a Search panel
- Map annotation tools that draw text, arrows, and highlights on the map, saved with the project
- Persistent mode banners for the Directions and Reverse Geocode tools
- A Camera Tour recorder that captures an animated keyframe tour to video, with per-keyframe recapture, per-keyframe hold and transition duration controls, and saving or loading a named tour setup as JSON
Expand Down Expand Up @@ -209,6 +213,7 @@ kepler.gl, see the [Comparison](comparison.md).
- QGIS project import (`.qgs` and `.qgz`) that rebuilds layers, nested layer groups, group visibility, layer order, styling, and the saved map view, reporting per-layer why anything was skipped rather than failing the whole import. See [Projects](user-guide/projects.md#importing-a-qgis-project)
- ArcGIS Pro project import (`.aprx` and `.mapx`) that reads CIM JSON without ArcPy and restores the first 2D map's extent, local vector and GeoTIFF layers, nested groups, visibility, simple symbols, field labels, vector-tile portal items, and cached map services, with per-layer warnings for unsupported sources. See [Projects](user-guide/projects.md#importing-an-arcgis-pro-project)
- Reusable project templates saved to a personal library, with an option to keep the basemap, groups, styles, legend, widgets, and layout while stripping the data layer content
- Startup project preference on the desktop app: open the default workspace, reopen the last local project, or always open one chosen project. Remote share links are never replayed on launch, a project URL in the address bar takes precedence, and a startup project that has gone missing falls back to the default workspace with an explanation instead of an error. See [Settings](user-guide/settings.md#startup)

## Plugins

Expand Down
2 changes: 2 additions & 0 deletions docs/self-hosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,8 @@ the public internet:
| --- | --- | --- |
| Basemaps | OpenFreeMap / CARTO tiles | Use the Basemaps plugin's **custom style URL** and serve your own style plus a PMTiles basemap from your server, or use a blank background. Add the host to the CSP if it is not your own origin. |
| Geocoding | Public Nominatim | Point it at a self-hosted Nominatim or Pelias (see [Data Integrations](user-guide/data-integrations.md#geocoding)). |
| Routing and isochrones | Public FOSSGIS Valhalla (`valhalla1.openstreetmap.de`) | Set `VITE_ROUTING_ENDPOINT` to your own Valhalla server. This covers Processing → Network and the **Drive time** / **Walk time** [quick actions](user-guide/map-controls.md#quick-analysis-from-a-clicked-point). Add the host to the CSP. |
| Pointer elevation readout | Public Open-Meteo elevation API, and only when 3D terrain is off | Leave the readout off (it is off by default), or keep 3D terrain enabled so the height is read from tiles the map already has. GeoLibre asks for consent before the first remote lookup. |
| Python (Pyodide) vector engine | Loads Pyodide from jsDelivr | Set `VITE_PYODIDE_INDEX_URL` to a mirrored copy of the Pyodide distribution. |
| AI assistant | Off unless configured | Leave `GEOLIBRE_AI_URL` unset, or route it through your own proxy. |
| Project sharing | `share.geolibre.app` | `GEOLIBRE_SHARE_URL=off`, or your own [projects server](server-api.md). |
Expand Down
45 changes: 44 additions & 1 deletion docs/user-guide/interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,50 @@ On-map controls such as zoom, globe, fullscreen, and the Layer Control appear in

## The status bar

The status bar along the bottom shows the live cursor coordinates, zoom, bearing, and pitch, a button to expand the [Attribute Table](attribute-table.md), and a **Diagnostics** button (also under **Help**) that surfaces any runtime errors.
The status bar along the bottom reports the live state of the map, from left to right:

| Readout | Description |
| --- | --- |
| **Coords** | The coordinate under the pointer. Click it to switch notation — see below. |
| **Elev** | The ground elevation under the pointer. Off by default; see [Elevation readout](#elevation-readout). |
| **GPS** | The current fix, while [GPS tracking](map-controls.md#gps-tracking) is running. |
| **Zoom** | The map zoom level, to two decimals. |
| **Eye alt** | The camera's altitude above sea level — the same quantity Google Earth Pro calls *Eye alt*. |
| **Bearing** / **Pitch** | The camera rotation and tilt, in degrees. |
| **BBox** | The bounding box of the current view (hidden on narrow windows). |

It also holds a button to expand the [Attribute Table](attribute-table.md) and a **Diagnostics** button (also under **Help**) that surfaces any runtime errors.

**Eye alt** is scaled to the active celestial body, so it stays correct on a Mars or Moon basemap rather than reporting an Earth-derived height, and it follows the **Scale bar units** preference (metres/kilometres, feet/miles, or nautical miles). See [Settings → Map Preferences](settings.md#map-preferences).

### Coordinate format

GeoLibre can report the pointer coordinate in four notations:

| Format | Example |
| --- | --- |
| **Decimal degrees** (default) | `-83.92074, 35.96064` |
| **Degrees, minutes, seconds** | `35°57'38.3"N 83°55'14.66"W` |
| **Degrees, decimal minutes** | `35°57.6384'N 83°55.2444'W` |
| **UTM (zone, easting/northing)** | `17S 236594mE 3983527mN` |

Decimal degrees are written longitude-first, matching GeoJSON and the rest of the app; DMS and DDM lead with latitude, the way those notations are conventionally written.

Click the coordinates in the status bar to cycle through them, or set the notation in **Settings → Map Preferences → Coordinate format**. The choice is saved with the project.

The UTM readout uses the same projection that draws the [Gridlines](map-controls.md#camera-overlay-and-recording-tools) UTM grid, so the numbers in the status bar always agree with the grid on screen. Outside the UTM latitude band (below 80°S or above 84°N) there is no valid UTM coordinate, and the readout falls back to decimal degrees.

### Elevation readout

**Controls → Elevation** turns on the **Elev** readout. It is **off by default**, and it resolves the height under the pointer from one of two sources:

- **With 3D terrain enabled** the height is read straight from the terrain the map has already loaded. This is instant, tracks the cursor live, and sends nothing off your device.
- **Without 3D terrain** GeoLibre falls back to the public [Open-Meteo](https://open-meteo.com/) elevation API, and only after the pointer has been still for half a second. Results are cached per roughly 11 m cell, and the lookup runs only on Earth — never on a planetary basemap.

Because the fallback sends the coordinates under your pointer to a third-party service, GeoLibre asks for consent the first time you enable the readout. Decline and the readout still works over 3D terrain, but never reaches the network. While a lookup is in flight the readout is blank rather than showing the previous point's height.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

!!! tip "Reading elevation along a line"
For a profile rather than a single point, use the Elevation Profile plugin, or the [Measure tool](map-controls.md#component-tools), which reports terrain-aware 3D distances.

## Theme

Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/layers.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The **Layers panel** on the left lists every layer in the project, from the topm
Each layer exposes a set of actions:

- **Zoom to layer**: fit the map to the layer's extent (for layers whose bounds are known).
- **Identify features**: click features on the map to see their attributes in a popup.
- **Identify features**: click features on the map to see their attributes in a popup. On a raster layer this reads the pixel value instead, and on a multiband raster it also builds a [spectral profile](styling.md#spectral-profile).
- **Labels**: toggle text labels for vector layers that have a label field.
- **Metadata / Properties**: inspect the layer's source and configuration.
- **Remove layer**: delete the layer from the project.
Expand Down
55 changes: 54 additions & 1 deletion docs/user-guide/map-controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ These are the standard MapLibre controls that sit in the map corners:
| **Globe** | Switch between the flat map and a 3D globe projection. |
| **Terrain** | Toggle terrain (3D elevation) rendering. |
| **Scale** | Show a scale bar. |
| **Elevation** | Report the ground elevation under the pointer in the status bar. Off by default — see [Elevation readout](interface.md#elevation-readout). |
| **Attribution** | Show data attributions. |
| **MapLibre logo** | Show or hide the MapLibre logo. |

Expand All @@ -29,7 +30,7 @@ These are interactive panels provided by the MapLibre components plugin:
| **Colorbar** | Display a continuous color scale for raster values. |
| **Legend** | Show a legend describing the layers on the map. |
| **HTML** | Display custom HTML content in an on-map panel. |
| **Measure** | Measure distances and areas interactively. |
| **Measure** | Measure distances and areas interactively, with heading and terrain-aware 3D readouts. See [Measuring distance, area, and heading](#measuring-distance-area-and-heading). |
| **Bookmark** | Save named map views and jump back to them. |
| **Minimap** | Show an overview map of the current extent. |
| **View State** | Read and edit the exact center, zoom, bearing, and pitch. |
Expand All @@ -39,6 +40,58 @@ The **Print Layout** composer lives under the [Project menu](projects.md#print).
!!! note "Control position"
Plugin-backed controls can be positioned in any map corner. For plugins that support it, set the corner from the [Plugins menu](plugins.md) (top left, top right, bottom left, or bottom right).

## Measuring distance, area, and heading

**Controls → Measure** draws a line or polygon on the map and reports it in the Measure panel. Beyond distance and area, the panel adds two further sections:

- **Heading** — the direction of the measured line, as degrees plus a 16-point compass label (for example `310° NW`). This is a true great-circle initial bearing, not the angle the line makes on screen: on a Mercator map Washington to London *looks* due east, while the real initial bearing is about 50°. On a path with more than two points, the heading is the overall first-to-last direction rather than one row per segment.
- **Final heading** — the bearing arriving at the far end. A great circle changes direction along its length, so this row appears only on lines long enough for the convergence to reach a degree; short measurements stay a single row.
- **Terrain (3D)** — slope-following distances when 3D terrain is enabled. This section hides itself when no elevation data is available; the heading rows do not, because a bearing is pure geometry on the measured coordinates and needs no DEM.

## Right-click quick actions

Right-clicking the map opens a context menu built around the coordinate you clicked:

| Item | What it does |
| --- | --- |
| **The coordinate** | Shown at the top in a monospace font; click it to copy to the clipboard. |
| **What's here?** | Pull up the Wikipedia knowledge card for that place. |
| **Copy as GeoJSON** | Copy the clicked point as a GeoJSON `Feature`. |
| **Center map here** / **Zoom in here** | Fly the camera to the point, optionally one zoom level closer. |
| **Quick analysis** | A submenu of one-click analyses — see below. |
| **View in Google Maps** / **View in Google Earth** | Open the same location in an external map. |

### Quick analysis from a clicked point

The **Quick analysis** submenu runs a tool on the coordinate you right-clicked, with no dialog and no need to first create a point layer:

| Action | Description |
| --- | --- |
| **Buffer … here** | Three distance presets around the point. The presets follow your **Scale bar units** preference — 500 m / 1 km / 5 km for metric, 0.25 mi / 1 mi / 5 mi for imperial. |
| **Drive time from here** | 5-, 10-, and 15-minute drive-time isochrones. |
| **Walk time from here** | The same contours on foot. |
| **Viewshed from here** | What is visible from the point, within 2 km, 5 km, or 15 km. See [Viewshed](#viewshed-from-a-clicked-point). |
| **Open in Processing…** | Open the full [Processing](processing.md) vector dialog instead, for the parameters the presets don't expose. |

Results are added as new layers, and a banner reports progress and any failure with a link to the run's entry in Processing History.

The same **Quick analysis** submenu also appears in each vector layer's actions menu in the [Layers panel](layers.md), where it operates on the whole layer instead of a point: **Buffer all features by …**, **Centroids**, **Convex hull**, and **Bounding box**.

!!! warning "Drive and walk time call an external service"
Isochrones are computed by a Valhalla routing server — by default the public FOSSGIS instance at `valhalla1.openstreetmap.de`, so the clicked coordinate leaves your device. GeoLibre asks for consent the first time. Self-hosted deployments can point at their own server; see [Self-Hosting](../self-hosting.md).

### Viewshed from a clicked point

**Quick analysis → Viewshed from here** computes the terrain visible from the clicked point and drapes it over the map as a translucent overlay.

- **No DEM to prepare.** The elevation comes from the same public terrain tiles the map's 3D terrain control uses, fetched on demand for the square around your point. You do not have to find, download, or load a DEM first, and 3D terrain does not have to be switched on.
- **Observer height** is 1.8 m — a standing person — above the ground elevation at the clicked point.
- **Radius** is one of the three presets, from 2 km to 15 km. The underlying tool accepts anything from 100 m up to a 50 km ceiling.
- **The result is an image overlay layer** named `Viewshed (5 km)` or similar, so it gets opacity, reordering, zoom-to, and removal like any other layer, and it is saved with the project.

!!! note "What the quick viewshed does not model"
Earth curvature and atmospheric refraction are ignored. Over a few kilometres that is immaterial, but at the 50 km ceiling the curvature drop alone reaches roughly 180 m — enough to matter for a radio line-of-sight study, if not for "what can I see from this overlook". The public terrain tiles are also a global, generalized elevation model rather than a survey-grade DEM. For a rigorous analysis against your own DEM and your own station points, use the **Viewshed** tool under [Processing → Whitebox](processing.md), which this quick action deliberately does not replace.

## Camera, overlay, and recording tools

The Controls menu also carries tools that move the camera, drape live data over the map, or capture what you see:
Expand Down
Loading
Loading