Main Features
-
ArcGIS Support for FeatureService (#12146) (thanks to Genoa Municipality) Introduces support for ArcGIS FeatureService layers, which expose vector data through dedicated query endpoints and can serve multiple layers from a single service. The implementation targets both OpenLayers and CesiumJS, using a tile-based loading strategy that loads features incrementally per grid cell instead of fetching the entire dataset at once, providing natural spatial partitioning and a better balance of performance and user experience for typical FeatureServer datasets.
-
Support for FlatGeobuf (#11749) (thanks to Total energy) Adds integration with the FlatGeobuf format as a read-only remote layer type, with consistent support across the catalog, the layer tree, map identify, and styling, including dynamic updates to feature styles. The format is available in both the OpenLayers and CesiumJS map components, enabling FlatGeobuf datasets to be visualized in 2D as well as 3D.
-
Dynamic Projection Definitions (#12301) (thanks to Total energy) Extends MapStore's coordinate reference system management by connecting it to a GeoServer endpoint that exposes thousands of standardized CRS definitions. Administrators and users with edit permissions can now search, add, and remove projections on demand directly from the CRS selector, without redeploying the application or editing configuration files, while existing statically configured projections continue to work exactly as before.
-
Support Panoramax as Street View Provider (#12312) (thanks to Open Groupe) Introduces Panoramax as a new provider for the Street View plugin, allowing users to visualize street-level imagery via the Panoramax API, complete with dedicated configuration options, localization support, and proper attribution handling.
-
New Layer Catalog: MetadataExplorer Refactor & GeoNode API Integration (#11930) (thanks to Total energy) Reworks the legacy MetadataExplorer plugin (renamed to Catalog) with a refreshed layout and theme, reusing the resources catalog components already available in the platform. The refactor also introduces support for the GeoNode API as a new catalog service, alongside the existing WMS, WFS, WMTS and TMS services, paving the way to eventually retire the separate custom catalog previously maintained inside GeoNode itself.
Main Improvements
-
Layer Catalog Refinements (#12485) (thanks to Total energy) A set of styling and configuration refinements to the new layer catalog: improved spacing and layout in dialog mode (#12485), removal of duplicated legacy catalog components now centralized in the core (#12383), a fix preventing the catalog page from reloading (and resetting) when switching layout (#12479), alignment of template and default catalog configuration with removal of the default COG service entry (#12381), and a fix for GeoNode services showing the category identifier instead of its readable label on catalog cards (#12486).
-
FlatGeobuf Enhancements (#12467) (thanks to Total energy) Adds a configurable
maxFeaturesInViewoption for FlatGeobuf layers to limit the number of features rendered in the current view, avoiding performance issues when the map extent includes an entire large dataset, with support in both the TOC layer settings and the catalog's advanced settings, for OpenLayers and CesiumJS alike. Also activates the "Zoom to" button for FlatGeobuf layers directly in the TOC (#12227), aligning the experience with 3D Tiles and COG layers, and automatically fits the map to the layer's bounds when it is first added. -
Custom Widgets Support (#12158) (thanks to University of Naples) Introduces a new "custom" widget type that, unlike the existing predefined widgets with their own dedicated builders, can render any component exposed by another plugin inside the Widgets container. Custom widgets can be expanded and minimized like any other widget, opening the door to fully bespoke dashboard content.
-
Granular Permissions Control (#12140) (thanks to KFW) Mostly For GeoNode UI control. Permissions now support a
disabledproperty, allowing administrators to prevent selection, deletion, and modification of GeoLimits on specific permission rules when required. -
Timeline Plugin Layout Review (#11926) Reviews the position and styling of the Timeline plugin to make use of the newly introduced layout structure, moving it into the bottom section instead of a floating component, and refining the style of the expand/collapse control and the layout used when a time range is enabled.
-
WMS Layer Extent Cropping Control (#12302) (thanks to Total energy) By default, MapStore crops WMS layers to the current map projection extent. A new option lets users allow OpenLayers to request tiles beyond that extent instead, configurable from the TOC display settings, the catalog's advanced settings, and the background layer editor.
-
Configurable Nominatim Geocoding Endpoint (#12492) (thanks to @jwkaltz) Restructures how the Nominatim geocoding endpoint URL is built, making hostname and protocol overridable instead of hardcoded, so deployments can point to a custom Nominatim instance.
-
User Session Cleanup on Account Deletion (#12368) (thanks to Deutsche Bahn) Deleting a user now automatically triggers cleanup of any associated session records via a new backend cascade-delete parameter, preventing orphaned session data from accumulating in the database (#12367).
-
Project Entry Page (#10837) MapStore now has a more official project entry page, mapstore.io, available online as the project's official entry point with relevant links and pointers to the project, in the spirit of similar landing pages available for other open source geospatial projects, together with an automated process to keep it up to date across releases.
-
System & Infrastructure Updates (#12524) Includes an update of mapfish-print to version 2.3.5 in line with the release calendar, a migration of the geostore dependency to version 2.6 together with revised authentication setup documentation, including a dedicated guide for configuring authentication (OIDC/Keycloak) in Docker deployments (#12504), a new automation script and GitHub Action to verify that milestone issues are correctly backported to their release branch (#12323), CI hardening making the Coveralls upload step non-blocking and closing parallel builds to avoid outages affecting the pipeline (#11418), a switch to SSH-key based authentication for publishing build artifacts, a fix for automatic issue linking on backport pull requests (#11848), a fix for the
gzip_typessetting in the Docker Nginx configuration. The project README was also updated with a refreshed list of organizations using MapStore (#12684).