Georeference images in the browser against an existing OpenLayers, MapLibre GL or Leaflet map: load a local image, pair image points with map locations, fit one of seven QGIS-style transformations, export a GeoTIFF and optionally draw features that your application persists. Decoding, fitting and warping run in browser workers; no backend is required.
| Package | Responsibility |
|---|---|
| @georeferencing/core | Documents, controller, transforms, projections, worker processing, reference data and the map-adapter contract; no map library or UI dependency |
| @georeferencing/plugins | Opt-in GeoTIFF, JPEG, PDF and data exports, each loaded only when used |
| @georeferencing/react | Ready-made editor, composable panels, subscription hook and scoped styles, for any map adapter |
| @georeferencing/openlayers | OpenLayers adapter: any projection, WFS GML and borrowed host layers |
| @georeferencing/maplibre | MapLibre GL JS adapter, drawing with Terra Draw |
| @georeferencing/leaflet | Leaflet adapter, drawing with Terra Draw |
Install core, the adapter for your map library and, for the ready-made editor, React, all in the same version. Every other package declares core as a peer dependency, so they share your application's copy. Core enables no output formats by default; add only the plugins your host needs. The map adapters guide compares the adapters.
For an end-to-end host application, begin with the integration guide.
| Guide | What it covers |
|---|---|
| Getting started | Installation, version alignment, a typed host-map integration and composable UI |
| React and map libraries | Complete React integrations per map library, map lifecycle, session ownership, drawing and troubleshooting |
| Using core without React | Controller, engine and adapter in plain TypeScript: state, the editing workflow, sessions and cleanup |
| Map adapters | Choosing and configuring the OpenLayers, MapLibre and Leaflet adapters, Terra Draw, custom adapters and migration |
| Reference data | WFS axes/paging/authentication, borrowed layers, custom loaders, snapping and incomplete results |
| Optional export plugins | Format configuration, results and custom exporters |
| Lifecycle and saving | Image replacement, guards, confirmation, review, immutable saves and resource ownership |
| Coordinates and raster output | Pixel conventions, CRS spaces, models, residual formulas, resampling and output limits |
| Workers, packaging and deployment | Lazy assets, budgets, cancellation, npm packaging, CSP and static hosting |
| Capabilities and limits | Models, formats, resource budgets and integration boundaries |
The navigation is organized by package, then by import path. Each entry point's page lists its classes, interfaces, functions and types.
| Import | Purpose |
|---|---|
@georeferencing/core (also /core) |
Serializable documents, controller, transforms, projections, geometry and interchange |
| @georeferencing/core/engine | Lazy processing workers, raster helpers and scheduler |
| @georeferencing/core/map | Map-adapter contract, shared reference sources (WFS, GeoJSON, custom loaders) and helpers for adapter authors |
| @georeferencing/core/encoder-worker | Protocol for custom raster codec workers |
@georeferencing/core/worker |
Bundled processing-worker script |
| @georeferencing/plugins | All lazy format factories; prefer the per-format entries below |
| /geotiff, /jpeg, /pdf, /data | One export format family each |
| @georeferencing/plugins/tiff | Low-level TIFF encoding and validation |
| @georeferencing/plugins/report | Low-level PDF creation and optional map capture |
| @georeferencing/plugins/serializers | Pure QGIS points, world-file and accuracy-report serializers |
@georeferencing/plugins/geotiff-worker, /jpeg-worker |
Bundled codec-worker scripts |
| @georeferencing/react | Ready-made editor, panels, types and subscription hook |
| @georeferencing/openlayers | openLayers adapter, attachReferenceMap, OpenLayers WFS/GML loading and map capture |
| @georeferencing/maplibre | maplibre adapter, attachMapLibre and map capture |
| @georeferencing/leaflet | leaflet adapter and attachLeaflet |
@georeferencing/react/styles.css |
Optional scoped editor styles |
Worker script entries have no API of their own: load them as workers (the deployment guide shows how), not as ordinary or SSR imports. API signatures and guides keep source pixels, reference/working/map CRSs, raster output and geographic features separate. The packages and this documentation are MIT licensed; redistributing the library workers also requires their bundled notices.