Manual/Reference

Features

A feature-by-feature list of what Meratyn can do today (v2.9.0). For task-oriented walkthroughs, see the User Guide and the Tutorials.

Platforms and interface

  • Runs across desktop (Tauri), web (browser), native Android (Tauri v2 mobile), and mobile or small screens, with a responsive, touch-friendly layout that adapts menus, dialogs, and panels (on phones the Layers/Style panels overlay the map as slide-over sheets), plus per-panel visibility through Layout settings
  • Command palette (Ctrl/Cmd + K) that searches and runs menu and toolbar actions across Add Data, Processing, Controls, Plugins, and Help, global keyboard shortcuts for New/Open/Save/Save As and Google Earth-style camera resets (N north up, U top-down, R reset view), and a ? shortcuts cheat sheet
  • Customizable UI profiles that tailor which menus, panels, and data sources are visible, so a deployment can present a focused subset of the app to its users. See UI Profiles
  • Separate deployment capabilities and application roles: MAPPVIEW_CAPABILITIES gates host-wide authority, while viewer/editor/publisher/administrator/custom application policies gate person, workspace, embed, and scripting actions. Menus, the command palette, shortcuts, and direct calls share the same denial boundary. See Deployment and application capabilities
  • Internationalization framework with react-i18next and 19 structurally complete per-build locale catalogs (the English baseline plus 18 selectable non-English locales: the 16 existing translations, Persian and Vietnamese; Meratyn-specific values still awaiting review remain explicit English fallbacks) — including right-to-left Arabic and Persian with a fully mirrored interface — plus a ?locale/?lang query parameter to set the embed language
  • Accessibility pass with axe-checked screens, keyboard navigation, and screen-reader labels
  • App-wide, section, and plugin React error boundaries that contain failures and keep the rest of the workspace usable
  • Undo/redo for layer and style operations

Map workspace and basemaps

  • MapLibre map workspace with OpenFreeMap, Protomaps, EOX Sentinel-2 cloudless, and Openbasiskaart basemaps, planetary basemaps for 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) with a per-project ellipsoid whose radius drives distance, area, scale, buffer, coverage, movement, GPS, print, and elevation calculations and a planet switcher in the Layers panel, stacking of multiple raster basemaps, blank background support, double-click to swap the core basemap from the layer panel, a right-click context menu for reading coordinates and quick actions (a right-button drag that rotates or tilts the camera does not open it), a Gridlines coordinate-grid overlay with edge labels and a UTM easting/northing grid mode, and toggleable navigation, fullscreen, geolocation, globe, terrain, scale (switchable between metric, imperial, and nautical units), attribution, and logo controls, plus a View menu with viewport history navigation, a reset pitch and bearing control, a distinct north arrow, and View in Google Maps and View in Google Earth actions, and a double-click terrain control for vertical exaggeration and a single-band EPSG:3857 or EPSG:4326 elevation COG terrain source (local or HTTP)
  • 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 pane switchable to an optional CesiumJS 3D globe (camera-synced with the 2D maps; requires a Cesium Ion token — see Optional 3D globe credentials)
  • 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
  • Weather menu with live cloud and precipitation radar overlays (RainViewer), a Clouds overlay in the Map menu, and a Google Earth-style sun position simulation that lights the scene for a given date and time
  • Wikipedia knowledge cards: click a place on the map to pull up its Wikipedia summary and info card

Adding data

  • Load local vector layers supported by DuckDB-WASM Spatial, including common formats such as GeoJSON, GeoParquet, GeoPackage, Shapefile, FlatGeobuf, KML/KMZ (honoring embedded symbology, rendering GroundOverlay images as map overlays that animate through the Time Slider when time-tagged, and displaying embedded Collada .dae 3D models), GML, delimited text (including CSV without coordinates loaded as a standalone attribute table), GPX, and OpenStreetMap PBF extracts (parsed in-browser with osmix)
  • Reproject vector layers to EPSG:4326 on load, render vector layers that carry Z coordinates in true 3D rather than flattening them onto the ground plane, split dragged GPX files into named waypoint, track, and route layers, and preserve KML Folder ancestry as nested layer groups
  • Large local vector layers render through client-side vector tiling, with a warning before loading very large files
  • Decode and encode pasted Google/OSRM precision-5 or Valhalla precision-6 polylines from Add Data and Processing → Vector, including newline or custom-delimited batches
  • Add Data menu for XYZ tiles, WMS and WFS (with layers and feature types discovered from the service’s GetCapabilities so you pick from a populated dropdown), GeoJSON URLs, GeoRSS feeds (URL or file), vector tiles (including OGC API - Tiles vector tile services), OGC API - Features collections added as vector layers from whatever URL you have in hand (a landing page, /collections, a collection, or a full items URL), COG and GeoTIFF rasters, Cloud-Optimized NetCDF/HDF (via kerchunk references) plus local HDF5 and NetCDF-4 files, MBTiles, ArcGIS FeatureServer, VectorTileServer, MapServer, and ImageServer layers (with MapServer sublayer and ImageServer raster-function browsing), PMTiles, Zarr (remote stores or a folder on disk, with variable and dimension pickers that offer the store’s real coordinate values rather than raw indices), LiDAR, 3D Tiles (including authenticated tilesets via custom request headers), ArcGIS I3S scene layers (Integrated Mesh and 3D Object layers rendered on deck.gl), multi-layer GeoPackages with a layer picker so only the chosen feature tables load, delimited text with a source CRS field so projected easting/northing columns reproject correctly, CAD drawings (DXF/DWG) with a drawing-layer picker and CRS selector, Esri File Geodatabases (.gdb folders, desktop) with a feature-class picker and automatic reprojection, Gaussian splats, glTF/GLB 3D models placed at coordinates, georeferenced video overlays, and geotagged photos imported as a point layer from their EXIF GPS (with manual placement and drag for photos lacking coordinates, and a true native-resolution photo viewer), with a fully internationalized dialog, comma decimal support, drag-and-dropped CSV coordinate files, sample-data dropdowns on every externally sourced panel for loading ready-made example datasets, and a saved service library for storing and re-adding frequently used web-service endpoints. NetCDF/HDF files can also be opened from a direct .nc, .nc4, .h5, .hdf5, or .cdf URL when the server supports byte-range requests; exploration controls choose a single band or RGB channels, fit the extent on add, and identify pixels for sampled spectral profiles that export as PNG or CSV.
  • Add credential-free Apache Iceberg vector tables from a direct metadata location or REST catalog in the browser. Credential-bearing locations and signed URLs are rejected at the project boundary. Meratyn inspects the table before loading and requires a native GEOMETRY column. Loads are paged, with 5,000 rows per page by default and a 64 MiB decoded-data budget per page. The layer menu provides page navigation; Refresh reloads the current page. An available direct metadata Content-Length above 100 MiB is rejected before download; that HEAD check cannot preflight aggregate manifest/data fan-out, which can still require additional reads. Refresh is always manual because re-scanning an Iceberg table can be expensive.
  • Hyperspectral NetCDF/HDF cube inspection is bounded to 192 × 192 grids, 64 bands, and 12 MiB of decoded data, with an explicit 2D fallback when a dataset exceeds the browser safety envelope
  • QGIS-style Browser panel (Data Source Manager) for exploring and adding data from one place: browse map Services and Recent items, connect to PostGIS databases and browse their schemas and tables, drill into local files, save and reopen Favorites, add a New connection per service kind, with full keyboard navigation of the tree
  • Deck.gl Layer builder for composing deck.gl overlays from uploaded files or remote URLs
  • Cloud and open-data integrations through the Planetary Computer and Earth Engine panels, Overture Maps, Planet Open Data, and the Web Services group: ArcGIS Hub, Socrata, CKAN, and the pinned Natural Earth Source Cooperative product. These adapters use bounded public requests
  • Manual and automatic refresh for WFS, GeoJSON URL, and Add Vector Layer URL layers
  • Drag and drop vector and GeoTIFF/COG raster files onto the map to add them as layers
  • Export vector layers as GeoJSON, CSV, GeoParquet, GeoPackage, zipped Shapefile, KML, or KMZ. Shapefile exports preserve numeric precision or stop with guidance to use GeoJSON or GeoParquet when the DBF field limits cannot represent the values.

Layers, styling, and labels

  • Layer panel for visibility, opacity, reordering, rename, zoom-to-layer, identify, labels, open attribute table, export, and remove actions, with per-layer categorical, numeric-range, date-range, and text quick filters, an active-filter badge and one-action clear; a per-row symbology swatch (dot, line, square, or image glyph colored from the layer’s own styling), copy and paste of a layer’s style onto another layer, a metadata dialog that reads a raster’s real georeferencing from the GeoTIFF header (CRS and EPSG code, pixel size and extent in CRS units, data type, nodata, compression, tiling, and overviews), collapsible layer groups/folders for organizing the layer stack, Sketches export that copies GeoEditor drawings into a normal editable GeoJSON layer while preserving style, opacity, visibility, and group, and a Search places box in the footer for geocoding to a location — or flying straight to a typed coordinate in decimal degrees, DMS, or DDM, or to an H3 cell index typed as either a hexadecimal string or a 64-bit integer, which frames and outlines the cell — without leaving the panel
  • Identify can query every currently visible, queryable vector, DuckDB, WMS, NetCDF, time-series, and COG layer from one map click. Results are grouped by layer in an anchored, expandable popup with feature selection, raster row/column/band values, nodata labels, and a count of failed layer requests; the mode yields to geometry editing and cleans up its popup when the request or session changes.
  • Auto-generated on-map Legend panel derived from the visible layers’ symbology, with per-class rows for graduated, categorized, rule-based, and expression styling, gradient bars for heatmaps and continuous raster colormaps, proportional-symbol size ramps, diagram fields, and land-cover labels from a Raster Attribute Table, plus an edit mode for renaming, hiding, and reordering entries, adding a section from a color dictionary, choosing a corner, collapsing sections, resizing the panel, and exporting the rendered legend as JSON — saved with the project and shared with the Print Layout legend
  • Live style panel with single, categorized, graduated, expression, and rule-based (filter-driven) symbology (fill, stroke, opacity, circle radius), proportional symbols, fill patterns, a built-in marker library, plus point heatmap and clustering renderers — all including for Add Vector Layer point layers, plus an inline color ramp picker that previews each colormap’s gradient on the trigger and beside every option, and a transparent (no fill / no outline) option in the color picker, with vector layer symbology that imports and exports as OGC SLD, QGIS QML, and Mapbox GL style JSON so styles round-trip between Meratyn, QGIS, and the Mapbox/MapLibre ecosystem; the rule-based renderer carries per-rule symbol properties, scale-dependent visibility, nested rules, and per-rule toggles (and can hide features matching no rule), and the style toolkit adds diagram symbology (pie, donut, and bar charts drawn on features), a symbology pack of inverted-polygon masks, arrow and marker lines, and geometry generators, data-driven proportional sizing for marker icons, and a Style Manager that saves reusable symbol, color-ramp, and label presets to a personal library and applies them across projects
  • Data-defined label engine for labeling vector features by any attribute or expression, with ArcGIS-style placement and styling controls (anchor, X/Y offset, rotation, wrap width, letter case), expression-driven label properties, placement priority, a Duplicate labels option, and unique/concatenate modes that collapse points stacked at the same coordinate into a single deduplicated label
  • Single-band pseudocolor with classification, reversed and custom color ramps, the full colormap list shown as inline gradient swatches in the Color ramp picker, a Legend populated automatically from a paletted raster’s embedded color table, and RGB band combination for styling raster layers, plus COG pixel-value inspection from the Identify icon and bounded multiband spectral profiles (with PNG/CSV export) sampled from clicked pixels

Attribute data and expressions

  • Attribute table with filtering, sorting, resize controls, feature highlighting with Ctrl- and Shift-click multi-row selection, optional zoom to selected features, add-field and field-calculator tools (including geometry length and area calculation), virtual fields (expression-backed computed columns that update with the data), persistent attribute joins configured in layer properties, an attribute form designer with edit widgets, validation constraints, and conditional field visibility, automatic editor tracking that records the creating and last editing identity/timestamp on maintained columns for drawing, geometry edits, table edits, field calculations, and field capture, a Charts panel (histogram, scatter, bar, line, box), a field statistics summary panel, column management (rename, delete, hide/show, reorder) with a column explorer for finding and toggling fields in wide tables, virtualized rows for large layers, and export to GeoJSON/GeoParquet/Shapefile/GeoPackage/CSV, plus a Raster Attribute Table for single-band categorical rasters
  • Shared Expression Builder with a function reference, searchable field list, live preview, and reusable variables, wired into filters, labels, styling, field calculation, and selection, plus Select by Expression and Select by Location for building feature selections

SQL and databases

  • SQL Workspace for running DuckDB Spatial SQL against loaded layers, local files, and remote URLs, docked as a resizable panel beside the map with editor autocomplete for tables, columns, and SQL keywords, sample queries, query history, and adding results to the map or exporting them, plus an in-browser PostGIS SQL engine via PGlite and an Apache Sedona spatial SQL engine
  • Multiple DuckDB SQL query-result layers with identify, selection, and attribute table support

Map tools, printing, and media

  • Map menu with Measure (including terrain-aware 3D measurements), Bookmark, Minimap, View State, and Map annotation tools (draw text, arrows, rectangles, ellipses, freehand highlights, pins, sticky notes, and placed images; point images or pin an image to a map extent; all saved with the project), a Search panel, 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/loading a named tour setup as JSON), a Dashboard panel of configurable chart widgets that summarize the loaded layers (histogram, scatter, bar, line, box, and pie charts plus big-number indicator tiles with count, sum, mean, min, max, or median aggregation and custom prefix and suffix), and a Print menu with a print layout composer (user-editable legend, explicit map-scale input, title block with editable title and footer, page-size controls, a custom print extent, attribute-table and chart blocks, Atlas / map series generation that produces one page per feature or a uniform series of pages along a line, and Copy to Clipboard) that exports the map to PNG or PDF
  • Record the map canvas, or a drawn bounding box, to a video file straight from the browser (with an optional title/source caption and on-map panel capture for HTML, legend, and colorbar overlays), and animate a marker along any line layer with 3D track-follow camera controls and MP4 export
  • Bookmarks that capture the active layers alongside the camera, organized into folders, with selectable export, a resizable and reorderable panel, and a save-as name prompt

Field data collection

  • Field Collection tool for capturing point, line, and polygon observations with a per-layer custom form (text/number/date/choice fields and optional photos), placed by device GPS or by tapping the map, written to a GeoJSON layer that flows into the attribute table, export, and offline use. Closing its dialog leaves the collection session available from its named reopen pill; Done ends that session without removing its saved project data.
  • Elements manager for individual line, arrow, highlight, text, pin, sticky-note, and placed-image annotation groups: choose an annotation layer, rename and edit applicable properties, toggle visibility, reorder, move a group by the next map click, delete it, or transfer it between annotation layers; extent-pinned image overlays keep their map bounds synchronized when moved.
  • The Change background picker offers a Blank Background choice and closes immediately after selection. While Blank Background is active, Background appearance in the Layers panel opens a color and opacity editor; the chosen color is saved with the project, while Use theme default restores the current theme color.
  • Live GPS tracking with a moving position marker, a recorded track log, and digitizing new features directly from the GPS feed

Storytelling and collaboration

  • Story map builder that composes its chapters directly on the live map, with a presenter view, dedicated start and closing slides, an optional hide-itinerary toggle, a printable PDF handout generator (with subtitle and byline fields), and standalone HTML export
  • Local and portable project workflows keep collaboration explicit: exchange .meratyn.json files or a redacted shared project. Meratyn does not provide a hosted live-collaboration relay or hosted activity log

AI, Python, and automation

  • Natural-language GIS assistant that turns plain-English requests into auditable Meratyn operations (Spatial SQL, symbology, add/remove data, and map control), with authored project changes recorded by Travels available to undo; provider-pluggable with your own API key (also read from OS environment variables) and a dedicated AI Providers settings section with per-feature provider dropdowns and multiple named profiles (provider, model, and credentials) that you can switch between from the assistant panel, plus an in-panel model picker over the active profile’s models, credentials that survive a provider change, and arrow-key recall of previous prompts
  • In-app Python Console plus a Python automation API for scripting the app
  • Notebook panel docked beside the map for running Jupyter against the live map: the web build embeds a self-hosted JupyterLite site (in-browser Pyodide kernel) and the desktop build launches a uv-managed JupyterLab server, with notebook cells driving the map through an auto-loaded meratyn client — and external Jupyter frontends attached to that server (VS Code’s Jupyter extension, jupyter console, nbclient) drive the map too. See Notebook Panel
  • Python package (meratyn) that embeds the full app in Jupyter notebooks as an anywidget, with an expanded leafmap-style API (local raster, marker/cluster, and choropleth layers; split_map, add_legend, and add_colorbar helpers; typed read-back of selected/drawn features; and to_html export) and two-way project sync. See the Python package guide
  • Separate meratyn-dash adapter (meratyn>=2.8.0,<3.0) exposes DashMap for Plotly Dash layouts without adding Dash to the core package
  • Python Earth Engine layer support evaluates authenticated images, collections, features, and geometries in the kernel, emits expiring XYZ tiles, and never persists credentials; an audited managed disaster-news route applies a fixed Tavily news query, response-size bounds, and per-client rate limits
  • Optional Python FastAPI sidecar for heavier processing workflows

Processing and analysis

  • Conversion menu for Vector to GeoParquet/FlatGeobuf/PMTiles, a generic Vector to Vector converter that translates between any supported vector formats by file extension, CSV to GeoParquet, and Raster to COG; in the browser build every conversion runs client-side on DuckDB-WASM, the pure-JS writers, or @mappview/wasm (Vector to PMTiles on a background worker), while the desktop app prefers the Python sidecar, whose GDAL/rio-cogeo stack reads more input formats and tiles deeper
  • Whitebox Toolbox with an offline-bundled catalog and nested Conversion, Hydrology, LiDAR, Network, Projection, Raster, Remote Sensing, Terrain, and Vector categories in the Processing menu; catalog-supported tools run locally through WebAssembly in the browser, while the desktop app can additionally use its managed Python sidecar for native file paths and sidecar-only tools. The dialog is deep-linkable through a ?tool= URL parameter that preselects a tool and pre-fills its form (with a Copy link button that builds the shareable link). Processing → Batch Tools applies one vector tool to selected layers.
  • Processing → Vector provides common geometry and analysis tools (buffer, centroids, convex hull, dissolve, bounding box, simplify, clip, intersection, difference, union, spatial join, attribute join, select by value, select by expression, select by location, random extract, movement, space-time, and cell coverage) plus data quality tools (check validity, fix geometries, and check topology rules) that run in the browser with Turf.js, an optional GeoPandas sidecar engine for every tool, and an in-browser GeoPandas engine via Pyodide (no server, same results as the sidecar)
  • Processing → Raster provides common raster tools (hillshade, slope, aspect, reproject, resample, clip by extent, clip by mask layer, polygonize, contour, zonal statistics, raster calculator, reclassify, mosaic, focal statistics) backed by browser WASM engines for supported operations and inputs, with an optional rasterio Python sidecar for native file paths and operations outside the browser engine, plus in-browser extraction of COG, WMS, and XYZ bounding-box subsets and a normalized-difference index builder for any HTTP COG
  • Spectral Index toolbox (NDVI, GNDVI, NDWI, NDMI, NDBI, NBR, EVI, SAVI) with Sentinel-2, Landsat 8-9, NAIP, and custom band layouts, evaluated client-side with geotiff.js or on the optional rasterio sidecar
  • Spatial Statistics toolbox, including Emerging Hot Spot Analysis and a composite score builder that normalizes, weights, and combines numeric fields into an auditable 0–100 or 0–1 suitability index, plus Model Builder for directed processing graphs and Processing → Batch Tools for applying one vector tool to selected layers
  • Processing History panel that lists every tool run, re-runs any of them with one click, and opens a review before copying equivalent Python code; the Python export API remains unchanged
  • Raster Georeferencer (Processing → Raster → Georeferencing) that pins a non-georeferenced image to the map with ground control points using a least-squares affine fit, reporting per-GCP and RMS residuals
  • Network analysis tools for isochrones, service areas, origin–destination (OD) cost matrices, and sequential routes (directions) through an ordered set of waypoints
  • Interactive terrain viewshed from the map context menu: choose a 2, 5, or 15 km radius around a clicked Earth coordinate, fetch bounded Terrarium DEM tiles, and publish the worker-computed visible area as a project image layer; the action is disabled for planetary ellipsoids until a matching DEM source is available
  • Geocoding tools for forward, batch, and reverse geocoding through a multi-provider abstraction, including credential-free Colombian IGAC Geographic Names forward search with validated WGS84 coordinates and a 200 ms courtesy pace. IGAC Geographic Names is a place-name service, not an address locator or reverse geocoder
  • Processing → AI Segmentation turns imagery into vector features through typed samgeo-api requests using SAM 3 for text and automatic modes. The separate Plugins → SamGeo panel adds foreground/background points and bounding boxes, with configurable SAM 3 model/backend controls; its Automatic mode uses the SAM 2 mask generator. Both surfaces reproject returned GeoJSON before publishing a layer and require a reachable service. SamGeo is build-only: model weights are not bundled, operators supply them and accept their terms, and weights remain in the service storage boundary. See AI Segmentation
  • In-browser object detection that runs ONNX/YOLO models directly in the webview, with no server or Python required, over map imagery or an imported geotagged photo layer
  • Plugins → DGGS groups H3 Grid, S2 Grid, A5 Grid, DGGRID, DGGAL, OLC, Geohash, and Tilecode. The Processing → DGGS submenu provides generators for H3, S2, A5, DGGRID, and DGGAL (polyfill, extent, viewport, or manual-bbox sources), point binning with count/sum/mean/min/max, and Compact / Expand for hierarchical H3, S2, A5, and DGGAL cells. H3 uses DuckDB-WASM; S2/A5 run in-browser with bounded A5 center-sampling, and DGGRID/DGGAL use bundled WebAssembly engines. Merge Layers, Extract Vertices, and Points Along Geometry run client-side with explicit skip summaries and bounded point-generation safeguards

Projects and sharing

  • Project menu to create, open, save, Save As, duplicate, and save reusable templates for .meratyn.json projects; browser and desktop file pickers plus drag-and-drop accept .mappview and .meratyn.json, while mixed project drops are rejected and dirty work prompts Save, Do not save, or Cancel; URL loads are transient and are not added to Open Recent, browser saves use the File System Access API or a download fallback, and desktop file associations provide the native filesystem integration; templates can retain configuration while stripping data layers, and gallery projects can open as detached copies
  • Catalog workspace for uploading local vector and raster files, keeping a stable layer reference in shared projects, choosing public/unlisted/private or workplace access, granting independent view/download/edit/manage rights, editing metadata and table presentation, managing styles, versions, replacement files, geographic access limits, comments, ratings, favourites, related layers, and audit history, with map and download delivery routed through Share so project consumers do not need the source files or server addresses. See Catalog

Plugins

  • The default Catalog plugin browses published layers and adds a suitable vector, raster, tile, or feature representation while keeping temporary access credentials out of saved projects
  • SamGeo plugin for interactive imagery segmentation: text, foreground/background point, and bounding-box prompts use SAM 3, while Automatic (everything) uses SAM 2; model IDs, backend, and mask thresholds can be tuned in the panel. The runtime is build-only and unlicensed: weights are not bundled or serialized, and the operator supplies weights and accepts their terms
  • Plugin system with basemap, layer control, MapLibre components, swipe, street view, Mapillary coverage and street-level image viewer, OpenAerialMap open-aerial-imagery search, Source Cooperative data browsing (including opening or streaming large GeoParquet from Source Cooperative), STAC Catalogs, Vantor, and Planet Open Data browsers that discover public catalogs, search collections and items, and add declared GeoTIFF/COG, GeoJSON, GeoParquet, PMTiles, and Zarr assets when the selected reader can open them (including variable selection for Zarr and Icechunk repository branches), an Earthdata GIS browser that searches NASA’s EOSDIS ArcGIS portal and renders its imagery, map, and feature services and published web maps as first-class layers, a Hugging Face panel for searching the Hub, walking a dataset repo’s folders, adding its vector and raster files to the map, and creating and uploading dataset repos, a GeoLens catalog browser that connects to a self-hosted GeoLens server and adds datasets as signed vector tiles, OGC API Features GeoJSON, or server-rendered raster tiles (and writes edits to a GeoJSON-loaded dataset back to the GeoLens server, feature by feature, when the server allows it), Historical Imagery, Elevation Profile, Overture Maps, USGS LiDAR, GeoAgent, ArcGIS Hub, Socrata, CKAN, Natural Earth, and GeoEditor integrations (the GeoEditor can pull the vector features currently visible in the map view into the editor for editing without re-importing the source, and write edits back to their origin, including GeoPackage and GeoJSON files and PostGIS database tables), including configurable control positions and external plugin manifests; the Web Services adapters use bounded public requests. External plugins can render on the host’s shared deck.gl instance via app.getDeckGL(), use the maplibre-gl-raster stack and the map projection control, register native raster and tile layers, render Zarr through the renderer the app already ships via addZarrLayer (with plugin-owned paint properties honored on custom layers, so the Style panel’s sliders apply), expose layer groups of their own, register first-class right-sidebar panels, toolbar menus, and floating panels through the plugin UI host API (including a shared-rail replace-style dock mode), and place their toolbar menus after the Help menu
  • Time Slider plugin for animating time series raster and vector data, including binding existing vector layers already on the map to the timeline — GeoJSON as well as vector tiles, PMTiles, and MBTiles, whose timestamp field is detected from a live tile sample so a tiled layer animates over its full extent without a local copy of the data — driving a layer’s own internal time dimension through a generic temporal adapter so a data cube such as a Zarr store joins the shared timeline, stepping through mosaic sources (a MosaicJSON or STAC collection of many COGs per date) rendered on either a GPU or a WASM engine, and a pixel time-series chart that plots a sampled pixel’s value across a raster stack
  • Flight Simulator plugin with a continuous, interactive free-flight camera you steer over terrain and 3D layers from the keyboard, rather than declaring a destination and watching a scripted camera animation
  • H3 hexagonal grid plugin that renders the H3 grid over the current view at a chosen resolution, identifies a cell to inspect its index, parent, children, neighbors, and center, and exports the grid or the selection as GeoJSON or CSV
  • Atmosphere Effects plugin that renders a deep-space backdrop, parallax starfield, comets, and an atmospheric halo around the globe at low zoom (technique adapted from Leonel Dias), with a Spinning Globe panel and customizable atmosphere halo and deep-space colors
  • Directions plugin for interactive routing via maplibre-gl-directions: click the map to add waypoints, drag to reposition, and click a waypoint to remove it (uses the public OSRM demo server, driving only)
  • Install external plugins from an uploaded zip on both desktop and web, plus external plugin zip loading from the app data plugins directory and local development plugin directories, with the Manage Plugins list sorted alphabetically
  • Bundled drop-in plugins under public/plugins/<id>/ that bake into both the web and desktop builds and load automatically with no manifest URL

See the Plugin API to build your own.

Deployment and platform builds

  • Browser deployment with Docker (with optional HTTP Basic Auth for the web container), embed-friendly URL parameters (including ?url= project deep links that skip the welcome wizard and a ?welcome=0 param to opt out of onboarding), and a maponly chrome-free mode. See Embedding & Sharing
  • Versioned postMessage API for a host page that frames the app: load a project, move the camera, highlight features, and open a processing tool at runtime, with ready, projectLoaded, selectionChanged, viewChanged, toolCompleted, and serverFileWritten events back out. Off unless the deployment names its trusted origins (MAPPVIEW_EMBED_ORIGINS), which are enforced in both directions. See Talking to the map at runtime
  • Desktop diagnostics panel (capturing native Tauri HTTP requests in the network log and classifying failed fetch() errors), OS trust store and mTLS client-certificate support for native HTTP, automatic layer reload when local files change on disk, MSIX packaging support, with macOS installers signed with an Apple Developer ID certificate and notarized by Apple so they open without a Gatekeeper workaround, plus a Windows portable zip build that runs without installation
  • Native Android app built from the same codebase with Tauri v2 mobile, using the com.mapptech.mappview package id. Android builds are produced locally; browser-capable Whitebox, raster, and conversion operations remain available where supported, while sidecar-only tools, native-file paths, AI Segmentation, and PostgreSQL/Martin stay hidden. See Android
  • iOS build scaffolding on the same codebase, with Tauri iOS configuration, location permissions, and a CI workflow that signs and exports an .ipa when Apple signing secrets are present (bring-up: no iOS build has shipped yet). See iOS
  • Installable, offline-capable Progressive Web App (PWA) build, plus a Download Offline Area tool that pre-caches the current map view’s basemap tiles, and service-worker caching of the CDN-loaded Pyodide and PGlite/PostGIS engines so browser SQL and Python keep working offline after first use