GeoLibre v3.5.0 draws the map in other coordinate systems, makes ArcGIS editing follow your service's own rules, and turns story maps into interactive presentations. Draw the map in a polar or simple-cylindrical grid of the Earth, the Moon or Mars, start new ArcGIS features from published templates with contingent values checked as you edit, search with your organization's own locators, and present a story that plays itself and pauses for you to explore. It brings together 65 pull requests from 13 contributors, 7 of them contributing for the first time. Thank you to everyone who helped!
Highlights
- Other coordinate systems: draw the MapLibre map in another CRS, including Arctic and Antarctic polar grids, Plate Carrée, and polar and simple-cylindrical grids of the Moon, Mars and other bodies, each with a basemap served in that grid. WMS and ArcGIS export layers are requested in the map's CRS so they line up. See Settings.
- Smarter ArcGIS editing: start new features from a template the service publishes, with the template's values filled in. Contingent values are checked as you edit and again before every save, including on related records and services not hosted in ArcGIS Online. See ArcGIS editing.
- Organization geocoders: use your organization's ArcGIS GeocodeServer locators for place search, batch geocoding and reverse geocoding, with suggestions as you type and the locator's own search and result fields. Settings lists the servers allowed to receive a portal sign-in, each one revocable. See Data integrations.
- Interactive story maps: present a story that autoplays its chapters, pause at any chapter to explore the map, return to the chapter view, and draw, measure and search on the map while presenting. See Story maps.
- More data in more places: ArcGIS VTPK and TPKX packages, MBTiles on GeoLibre Web, PostGIS vector tiles rendered natively on Android and iOS, and COPC, LAZ and EPT point clouds from STAC catalogs. See Supported data formats.
- Faster processing and a smoother workspace: geoprocessing runs multi-threaded in WebAssembly with SIMD and an adaptive worker pool. The Processing menu is searchable, bottom panels can sit under the map, the map view and plugin state stay in the web address, a keyboard shortcut deletes the selected layer, and GeoLibre Web offers a reload when a new version is deployed. See Processing tools.
- AI Assistant and plugins: the AI Assistant can switch on an installed plugin and use its tools in the same turn. Plugins gain OAuth sign-in, request headers for authenticated tile services, vector tile and GeoJSON layer updates, layer visibility, GeoEditor sessions, and access to the built-in control panels. See AI Assistant.
Download
Launch GeoLibre Web at https://web.geolibre.app, or get the desktop and mobile apps from https://geolibre.app/downloads/ (or the assets below).
What's Changed
- feat(stac): add COPC, LAZ, and EPT point cloud assets by @giswqs in #3118
- feat(processing): add searchable tool menu by @JPPereira93 in #3119
- fix(raster): warn when a local raster cannot be saved or restored by @giswqs in #3121
- feat(plugins): add updateGeoJsonLayer and removeLayer to the plugin API by @robgaston in #3128
- feat(plugins): honor expected-status markers in nativeFetch diagnostics by @robgaston in #3124
- chore(deps): bump windows-registry from 0.6.1 to 0.100.0 in /apps/geolibre-desktop/src-tauri by @dependabot[bot] in #3132
- chore(deps): bump the cargo-minor-patch group in /apps/geolibre-desktop/src-tauri with 9 updates by @dependabot[bot] in #3131
- chore(deps): bump vedantmgoyal9/winget-releaser from 4ffc7888bffd451b357355dc214d43bb9f23917e to b7370d4d152efdce803a26cc6ca9eee58cb2ad54 by @dependabot[bot] in #3135
- chore(deps): bump anthropics/claude-code-action from 1.0.241 to 1.0.248 in the actions-minor-patch group by @dependabot[bot] in #3134
- chore(deps-dev): bump vite-plugin-pwa from 1.3.0 to 2.0.0 by @dependabot[bot] in #3137
- chore(deps): bump the npm-minor-patch group across 1 directory with 49 updates by @dependabot[bot] in #3141
- feat(plugins): OAuth authorization-code sign-in for plugins by @robgaston in #3139
- feat(plugins): add addVectorTileLayer to the plugin API by @robgaston in #3140
- feat(plugins): GeoEditor session events and startEditSession for plugins by @robgaston in #3138
- fix(plugins): keep plugin metadata from rerouting a vector tile layer by @robgaston in #3143
- feat(map): request headers for authenticated tile services by @robgaston in #3142
- chore(deps): bump zip from 8.6.0 to 9.0.1 in /apps/geolibre-desktop/src-tauri by @dependabot[bot] in #3133
- fix(processing): keep user-defined projections in WASM tools and COG conversion by @giswqs in #3145
- feat(geolens): keep publish keys in the project state by @ishiland in #3144
- fix(share): explain share servers without a share-link API by @giswqs in #3147
- feat(web): offer a reload when a new version is deployed by @giswqs in #3148
- fix(toolbar): stop a stale chunk from crashing the toolbar by @giswqs in #3149
- fix(arcgis): keep a cleared related-record field instead of refilling it by @giswqs in #3150
- feat(geocoding): support organization-hosted ArcGIS GeocodeServer locators by @giswqs in #3151
- fix(map): restore per-layer blend modes on maplibre-gl 6.14 by @giswqs in #3152
- docs(readme): add a Star History chart by @giswqs in #3153
- feat(map): draw the MapLibre map in other CRSs, incl. planetary grids by @giswqs in #3158
- feat(embed): let a layout=viewer embed opt into drawing by @GeraldJtB in #3154
- feat(layout): option to keep bottom panels under the map by @giswqs in #3159
- feat(assistant): let the assistant turn on an installed plugin and use its tools in the same turn by @giswqs in #3160
- feat(plugins): pass the cancel signal to assistant tool specs by @giswqs in #3161
- chore(deps): bump anthropics/claude-code-action from 1.0.248 to 1.0.252 in the actions-minor-patch group by @dependabot[bot] in #3165
- chore(deps-dev): bump happy-dom from 20.14.6 to 21.0.3 by @dependabot[bot] in #3168
- chore(deps): bump the cargo-minor-patch group in /apps/geolibre-desktop/src-tauri with 12 updates by @dependabot[bot] in #3164
- chore(deps): bump a5-js from 0.10.1 to 1.0.0 by @dependabot[bot] in #3167
- chore(deps): bump the npm-minor-patch group with 48 updates by @dependabot[bot] in #3166
- fix(ui): coalesce color picker drags to one update per frame by @giswqs in #3169
- Add an AI disclaimer to the README and acknowledgements by @giswqs in #3173
- feat(postgis): render PostGIS vector tiles natively on Android/iOS by @halixm-dev in #3172
- fix(conversion): set geometry_always_xy for DuckDB 2.0 GDAL writes by @giswqs in #3181
- feat(plugins): let plugins set a layer's visibility by @agraham9966 in #3182
- Add MBTiles Layer support on GeoLibre Web by @thangqd in #3185
- fix(deps): bump body-parser to 2.4.0 (GHSA-27r3-jxmh-p828) by @giswqs in #3189
- fix(dggs): emit A5 v1 cell IDs everywhere by @giswqs in #3184
- Improve UX when panning/rotating viewport while context menu is open by @rvanasa in #3186
- Add keyboard shortcut to delete selected layer by @rvanasa in #3187
- feat(storymap): add interactive presentation controls by @desmasen111-cmyk in #3163
- feat(plugins): let plugins open built-in control panels by @giswqs in #3190
- fix(assistant): open links in replies outside the app by @aborruso in #3195
- Add ArcGIS VTPK/ TPKX Layer by @thangqd in #3192
- perf(vector): optimize vector pipeline with binary GeoArrow layout and zero-copy worker tiling by @quanguet0409 in #3191
- ci: add change size tables to Claude code reviews by @giswqs in #3198
- fix: reduce idle GPU work in globe view by @giswqs in #3197
- Keep map views and plugin state in the web address by @giswqs in #3196
- fix: show recovery guidance while the web app starts by @giswqs in #3199
- Fix Wayback imagery failures in legacy projects at high zoom by @giswqs in #3200
- Let users pick a published ArcGIS feature template for new features by @giswqs in #3201
- Guard ArcGIS template text against non-string service values by @giswqs in #3202
- Check ArcGIS contingent values while editing and before saving by @giswqs in #3204
- Apply contingent values to related records and nonhosted services by @giswqs in #3206
- Add suggestions, search fields, result fields and approval review to organization locators by @giswqs in #3207
- fix: preserve project rasters during control initialization by @laozidabo in #3205
- feat(processing): multi-threaded WebAssembly geoprocessing with SIMD128 and adaptive worker pool by @quanguet0409 in #3203
- feat(i18n): fill missing translations in all 20 locale catalogs by @giswqs in #3208
- chore(release): v3.5.0 by @giswqs in #3209
New Contributors
- @robgaston made their first contribution in #3128
- @halixm-dev made their first contribution in #3172
- @agraham9966 made their first contribution in #3182
- @rvanasa made their first contribution in #3186
- @desmasen111-cmyk made their first contribution in #3163
- @quanguet0409 made their first contribution in #3191
- @laozidabo made their first contribution in #3205
Full Changelog: v3.4.0...v3.5.0