Universal Map2web

Version: 1.4.0 | QGIS: 3.0+

QGIS plugin to export vector layers as interactive HTML maps with QGIS symbology preservation.

Features

Quick guide

1. Launch

Click on the Universal Map2web icon in the QGIS toolbar.

2. Export

  1. Select the layers to export (Layers tab)
  2. Configure popups (fields to display on click)
  3. Optionally enable dynamic PostgreSQL/PostGIS mode for layers connected to a database
  4. Choose basemap and theme
  5. Customize: title, logo, header color
  6. Enable desired tools
  7. Click "OK" and choose the destination folder
  8. The map opens automatically in your browser

3. Web navigation

Action Command
Zoom Scroll / + / -
Pan Click-drag
View attributes Click on feature
Open attribute table Click the table icon before the layer name
Zoom to layer Click the magnifier icon before the layer name
Reset view Double-click on map

4. Advanced filtering

In the map sidebar: select layer → field → operator → enter value → Apply.

Available operators: = ≠ contains starts with > < ≥ ≤

5. Layer management on map

6. Dynamic PostgreSQL mode

For layers already connected to PostgreSQL/PostGIS in QGIS, enable "Load PostGIS layers dynamically from PostgreSQL (instead of a static export)" in the dialog.

Requires a PHP-capable web server with the pdo_pgsql extension to host the exported site — a plain static file host is not enough for this mode.

7. Attribute table

Each vector layer (shapefile, WFS or PostgreSQL) has a table icon in front of its name in the map legend. Click it to open the attribute table in a floating window.

The table lists the features loaded in the page. In dynamic PostgreSQL mode with bounding-box filtering, only the features of the loaded area are shown.

8. Live WFS / WMS layers

The connection settings are read from the layer already configured in QGIS: nothing to re-enter.

The OGC server must be reachable from the visitor's browser, use https if the map is served over https (mixed content is blocked), and have CORS enabled (next section). For WFS, the application/json output format must be available (default in GeoServer).

9. Enabling CORS on GeoServer (WFS and WMS)

The exported map is opened from another origin than your GeoServer (your website, or http://localhost:PORT with the built-in local server). The browser only lets the page read GeoServer responses if GeoServer sends the Access-Control-Allow-Origin header.

Service Without CORS
WFS The layer cannot be loaded ("blocked by CORS" message in the legend)
WMS Tiles still display, but click-to-query (GetFeatureInfo as JSON) is blocked and falls back to an HTML frame

Option A – Web Administration (recent GeoServer versions): enable the CORS setting in the GeoServer Web Administration interface (see "Enable CORS" in the GeoServer documentation), then restart GeoServer.

Option B – web.xml (all versions): edit webapps/geoserver/WEB-INF/web.xml, uncomment (or add) the CORS filter and its filter-mapping, then restart.

Standalone / binary installer (Jetty):

<filter>
  <filter-name>cross-origin</filter-name>
  <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>cross-origin</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

WAR deployed in Tomcat:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.headers</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Requirements

Component Requirement
QGIS 3.0 or higher
Browser Chrome 90+, Firefox 88+, Edge 90+
Memory 4 GB RAM minimum
Internet Required for basemaps and libraries

Best practices

Technical support

Jean-Baptiste KIBORA

📧 Email: jeanbaptiste.kibora@tic.gov.bf

📱 Phone: +226 64 41 25 14


Universal Map2web v1.4.0 | © kibora B. Jean-Baptiste | November 2026