Turn a QGIS project into a portable OnlyMap web map.
Installation, your first export, every dialog option, hosting and troubleshooting — the full guides, rendered and searchable.
A QGIS plugin that converts a finished QGIS project into an interactive web map that opens locally. No account, no web server, no coding. The default export is a single HTML file another person can double-click and use without QGIS installed.
Built by NIKA, powered by OnlyMap - the upstream map library this plugin exports to, documented at onlymap.nikaplanet.com.
Status: early release.
0.1.2is published on the QGIS Plugin Repository and under active development. The repository layout and task plan follow onlymap-js issue #29.
Exported maps send one anonymous usage report when they load, and nothing else. That report can include the runtime version, feature and widget usage counts, and the hostname of the page the map is running from — never the map's data or who opened it. Aside from that one report, an exported file works with no internet connection, on a machine that has never had QGIS installed. Publishing to NIKA hosting and AI-assisted enhancement are separate, explicit actions you start yourself — nothing is uploaded automatically.
See the privacy page for exactly what is and isn't sent.
| Mode | What the recipient does | When it is used |
|---|---|---|
| Standalone HTML | Double-click one file | Default. All resources embed and no remote resource is required |
| Share ZIP | Extract, then open index.html |
Data too large for one practical HTML file, or a mail filter that quarantines .html |
| Folder | Copy to a web server, or open index.html |
Publishing the result yourself |
Compression is lossless — no coordinate precision is discarded to shrink a file. Where a project genuinely will not fit one file, the plugin recommends the next mode rather than degrading the data.
Two further modes are designed but not in 0.1.0: a Large Local Package
with a bundled launcher, for tiled or range-request assets, and Publish with
OnlyMap for one-click hosting. See issue #29 for the full output
policy.
Plugins → Manage and Install Plugins… → All, search QGIS2WebMap, and press
Install Plugin. The listing is
plugins.qgis.org/plugins/nika_onlymap_exporter.
To run an unreleased build instead:
git clone https://github.com/NikaGeospatial/qgis2webmap.git
cd qgis2webmap
python scripts/package_plugin.pyThen in QGIS: Plugins → Manage and Install Plugins → Install from ZIP, and
choose dist/qgis2webmap-<version>.zip.
Requires QGIS 3.44 or newer (QGIS 4 supported).
The first export downloads the map runtime — about 4.5 MB, once per computer, after showing you its licence. Everything works offline after that. The runtime is the code that draws the map in a browser and is built into every map you export; it is a separate commercial product with its own licence, which is why it is fetched rather than bundled into this GPL plugin. See installation for the offline and proxy paths.
Everything below is published as a website at nikageospatial.github.io/qgis2webmap — read it there rather than as raw Markdown. The same guides ship inside the plugin's Help tab, so they work offline too.
- Installation
- Your first export
- The dialog, tab by tab
- Sharing a map
- Host with OnlyMap
- Enhance a map with AI
- What gets exported
- QGIS2WebMap or qgis2web
- Troubleshooting
- Privacy
Deeper articles live at NIKA Documentation.
Vector points, lines and polygons from GeoPackage, Shapefile, GeoJSON and CSV sources, with single-symbol, categorized and graduated styling; layer order, groups, visibility, scale ranges, field aliases and hidden fields; labels, popups, and data attribution. Every map ships a legend, layer switcher, zoom controls and a scale bar.
Anything that will not survive the trip is listed in the Fidelity tab before you export, classified as preserved, approximated, raster-fallback, unsupported or blocked. Nothing is dropped silently. Full list: what gets exported.
The OnlyMap runtime that draws your map has a free plan with three limits: 5 layers per map, 25,000 features per layer and 20 MB of fetched data.
None of them applies to a map opened locally — a file you double-click, a map
you email someone, localhost or 127.0.0.1 all draw everything, with no
licence key. The limits apply only to a page served over http(s) from a real
domain.
So they matter when you publish the map to a web server. There, layers past
the fifth render nothing, and a layer past 25,000 features is truncated to its
first 25,000 while still looking complete. Nothing warns you at export time,
because for almost every export there would be nothing to warn about: check the
Fidelity tab, which names every layer over a limit, before you host.
An OnlyMap licence key lifts the limits and removes the on-map badge — supply it
through the ONLYMAP_LICENSE_KEY environment variable or the Processing
algorithm's licence parameter. Note that lifted limits are a technical
convenience and not a licence grant: commercial use needs a key either way. See
size limits on the free plan.
An exported map is a readable HTML document, not a compiled bundle — so an AI assistant can edit it. Point Claude Code or Codex at the OnlyMap skill and ask for filters, charts, stories or custom branding, and the map stays portable. See enhance a map with AI.
Every exported map carries a Host with OnlyMap link. Hosting is always an explicit action you start: the artifact never uploads anything on its own, and publishing asks you to confirm you are authorised to and to choose Public, Unlisted or Private. See hosting.
Web → QGIS2WebMap by NIKA → Create web map, or the toolbar icon.
Compose the map in QGIS first — load layers, style them, set the canvas to the extent you want as the default view, and save the project. The plugin exports the project as it is.
nika_onlymap_exporter/ the plugin package (what ships)
├── core/ project reader, normalized export model, fidelity report
├── writers/ normalized model → OnlyMap manifest
├── exporters/ manifest → standalone HTML / zip / folder / hosting
├── packaging/ asset embedding, dependency scanning, runtime management
├── processing/ QGIS Processing provider
├── templates/ artifact shell + exported READMEs
└── ui/ the export dialog
docs/ user documentation, served via GitHub Pages
scripts/ package_plugin.py, verify_package.py
tests/ unit / qgis / browser / fixtures
Architecture notes: docs/architecture.md ·
Dialog design: docs/ui-design.md.
python scripts/package_plugin.py # build the zip
python scripts/verify_package.py dist/qgis2webmap-*.zip # check its shape
python -m pytest tests/unit # unit testsContributions: see CONTRIBUTING.md.
- Questions and bug reports: GitHub issues
- Documentation: NIKA Documentation
- Email: support@nikaplanet.com
The plugin is GPL-2.0-or-later — see LICENSE.
The OnlyMap runtime embedded in exported maps is separately licensed; see nikaplanet.com/onlymap.
QGIS2WebMap is built by NIKA and is not endorsed by QGIS.org. QGIS® is a trademark of the QGIS project.