Welcome to Planet OSGeo

March 27, 2023

March 24, 2023

With the QGIS Grant Programme 2022, we were able to support four proposals that are aimed to improve the QGIS project, including software, infrastructure, and documentation. The following reports summarize the work performed in the proposals. 

  1. Support building QGIS application on Qt 6 (#243) – Report
    In addition to the original plan of porting the “gui” and “app” libraries to Qt 6, it was possible to complete also the “3d” and “server” libraries. We now are at a stage where the majority of QGIS builds and runs without any significant issues on Qt 6. The Github CI setup has been updated to also run the C++ tests for gui, app, server and 3d, and the majority of these have been fixed so that they pass on the Qt 6 builds too. In addition, some tests which were failing under Qt 6 revealed some real QGIS bugs which have been fixed in the process of this work. (So there’s a direct benefit for the existing Qt 5 builds too!).
  2. Add SQL Logging in the debugging/development panel (#242) – Report
    When debugging or developing a QGIS algorithm or a QGIS plugin and when investigating performances of a particular layer it is often useful to view the SQL commands that QGIS sends to the backend. The SQL logging was implemented for Postgres, GeoPackage, Spatialite and Oracle data providers. immagine
  3. QGIS setting registry follow-up (#245) – Report
    The work can mainly be seen here PR qgis/QGIS#51295 with the proposed approach to register settings in a hierarchical and organized way, without too much complexity in the API to actually use the settings.
    To have a clean approach, some keys have been renamed. There is a compatibility handling (both forward and backward). The GUI implementation will be worked on during the HF in NL this spring.
  4. Fix handling of provider default value clauses/Autogenerate/nextval(…) handling (#247) – Report
    The bulk of these changes landed in the QGIS 3.28 release. A quick way to demonstrate on of the issues fixed is: open a Geopackage file, start editing the layer, add some features to it, but don’t save the edits, then right click the edited layer and try to save it to a different file. On older QGIS releases you’ll be spammed with a number of error messages because we tried to write a string value of “Autogenerate” into a number field for all the newly created features. On QGIS 3.28 this all just works as expected, with no errors encountered.

Thank you to everyone who participated and made this round of grants a great success and thank you to all our sustaining members and donors who make this initiative possible!

by underdark at March 24, 2023 10:58 AM

March 22, 2023

March 21, 2023

It is with great pleasure that we would like to welcome Felt as our first flagship sustaining member!

Felt plays a revolutionary role for those who work with maps daily by making maps and spatial analysis more accessible across organizations through modern web-based collaboration features. Teams across planning, tech, infrastructure, consulting, environmental sciences and more are using QGIS & Felt to access the power of desktop GIS alongside the ease of modern web-based collaboration features, including:

  • Customize your maps with browser-based tools: draw, drop pins, leave notes, trace boundaries, find routes — even add a video — all just point and click
  • Collaborate with your team on the same map in the moment, or hours and miles apart
  • Invite one, a few, or the whole world to see your work with precise access controls

Have a look yourself and discover the inspiring maps shared by Felt users.

We are particularly excited about this collaboration since Felt users regularly pair the analytical power of QGIS with the team-based sharing and collaboration features of Felt. Together, we contribute to a winning ecosystem of easy-to-use map-making tools for modern teams and organizations.

Felt’s support for QGIS helps us reach the goal of a stable financial basis to ensure another 20+ years of sustainable development and keep bringing the most user-friendly GIS to users worldwide.

by mbernasocchi at March 21, 2023 03:30 PM

March 19, 2023

This is a tutorial of Remotior Sensus, a Python package that allows for the processing of remote sensing images and GIS data.

This tutorial describes how to use Remotior Sensus in Google Colab and calculate NDVI from multiple Copernicus Sentinel-2 images. An average NDVI value is computed completely in the cloud, without the need to install software on your local device. 
Read more »

by Luca Congedo (noreply@blogger.com) at March 19, 2023 12:39 PM

March 16, 2023

Sourcepole hat an der FOSSGIS 2023 in Berlin verschiedene Themen mit Vorträgen abgedeckt:

  • QGIS Web Client 2 (QWC2) - Neues aus dem Projekt
  • COPC, das neue cloudoptimierte Format für Point Clouds
  • Cloudoptimierte Formate für Kacheln und multidimensionale Rasterdaten
  • Geodatenverarbeitung mit Workflow-Engines

March 16, 2023 12:00 AM

March 14, 2023

The GeoTools team is pleased to share the availability GeoTools 29-RC1 :geotools-29-RC1-bin.zip geotools-29-RC1-doc.zip geotools-29-RC1-userguide.zip geotools-29-RC1-project.zip Improvements and fixes in this releaseBugGEOT-6324 WFS-NG online tests don't extend OnlineTestCaseGEOT-7077 ClientProperty of a top element not showingGEOT-7148 Bug in JoiningJDBCFeatureSource / FilterToSQL creates

by Unknown (noreply@blogger.com) at March 14, 2023 05:02 PM

A new capability for the JTS Topology Suite is operations to process Simple Polygonal Coverages.  A Simple Polygon Coverage is a set of edge-matched, non-overlapping polygonal geometries (which may be non-contiguous, and have holes).  Typically this is used to model an area in which every point has a value from some domain.  A classic example of a polygonal coverage is a set of administrative boundaries, such as those available from GADM or Natural Earth.

GADM polygonal coverage for France Level 1   ( 198,350 vertices)

The first coverage operations provided are:

  • Coverage Validation, to check if a set of polygons forms a topologically-valid coverage
  • Coverage Union, which takes advantage of coverage topology to provide a very fast union operation

Another operation on polygonal coverages is simplification.  Simplifying a coverage reduces the number of vertices it contains, while preserving the coverage topology.  Preserving topology means that the simplified polygons still form a valid coverage, and that polygons which had a common edge in the input coverage (i.e. which were adjacent) still share an edge in the simplified result.  Reducing dataset size via simplification can provide more efficient storage and download, and faster visualization at smaller scales.

France coverage simplified with tolerance 0.01   (7,918 vertices)
The decrease in resolution is hardly noticeable at this scale

Closeup of simplified coverage (tolerance = 0.01)

Simplification is perhaps the most requested algorithm for polygonal coverages (for example, see GIS StackExchange questions here, here and here.)  My colleague Paul Ramsey sometimes calls it the "killer app" for polygonal coverages.  Earlier this century there was no easily-available software implementing this capability.  Users often had to resort to the complex approach of extracting the linework from the dataset, dissolving it, simplifying the lines (with a tool which would not cause further overlaps), re-polygonizing, and re-attaching feature attribution to the result geometries. 

More recently tooling has emerged to provide this functionality.  Simplification is the raison-d'etre of the widely-used and cited MapShaper tool.  GRASS has the v.generalize module.  And good old OpenJUMP added Simplify Polygon Coverage a while back.  

JTS has provided the TopologyPreservingSimplifier algorithm for many years, but this only operates on Polygons and MultiPolygons, not on polygonal coverages.  (Attempting to use it on polygonal coverages can introduce gaps and overlaps, resulting in complaints like this.)  But coverage simplification has been lacking in JTS/GEOS - until now.

JTS Coverage Simplification

Recent work on Polygon Hulls provided ideas for an implementation of coverage simplification. The CoverageSimplifier class uses an area-based simplification approach similar to the well-known Visvalingam-Whyatt algorithm. This provides good results for simplifying areal features (as opposed to linear ones).  It's possible to use a Douglas-Peucker based approach as well, so this may be a future option.

The degree of simplification is determined by a tolerance value.  The value is equivalent roughly to the maximum distance a simplified edge can change (technically speaking, it is the square root of the area tolerance for the Visvalingam-Whyatt algorithm).  

The algorithm progressively simplifies all coverage edges, while ensuring that no edges cross another edge, or touch at endpoints.  This provides the maximum amount of simplification (up to the tolerance) while still maintaining the coverage topology.

The coverage of course should be valid according to the JTS CoverageValidator class.  Invalid coverages can still be simplified, but only edges with valid topology will have it maintained.

France coverage simplified with tolerance = 0.1   ( 1,928 vertices)

France coverage simplified with tolerance = 0.5    ( 1,527 vertices)
The coverage topology (adjacency relationship) is always preserved.

Inner Simplification

The implementation also provides the interesting option of Inner Simplification.  This mode simplifies only inner, shared edges, leaving the outer boundary edges unchanged.  This allows portions of a coverage to be simplified, by ensuring that the simplified polygons will fit exactly into the original coverage.  (This GIS-SE question is an example of how this can be used.)

Inner Simplification of France coverage

It would also be possible to provide Outer Simplification, where only outer edges are simplified.  It's not clear what the use case would be for this - if you have ideas, leave a comment!

GEOS and PostGIS

As usual, this algorithm will be ported to GEOS, from where it will be available to downstream projects such as PostGIS and Shapely.  

For PostGIS, the intention is to expose this as a window function (perhaps ST_CoverageSimplify).  That will make it easy to process a set of features (records) and maintain the attributes for each feature.

by Dr JTS (noreply@blogger.com) at March 14, 2023 04:22 AM

GeoServer 2.23-RC1 release is now available with downloads (bin, war, windows), along with docs and extensions.

This is a release candidate intended for public review and feedback, made in conjunction with GeoTools 29-RC1 and GeoWebCache 1.23-RC1.

Thanks to Gabriel Roldan (Camptocamp), Jody Garnett (GeoCat), and Andrea Aime (Geosolutions) for making this release candidate.

Release candidate public testing and feedback

Testing and providing feedback on releases is part of the open-source social contract. The development team (and their employers and customers) are responsible for sharing this great technology with you.

The collaborative part of open-source happens now - we ask you to test this release candidate in your environment and with your data. Try out the new features, double check if the documentation makes sense, and most importantly let us know!

If you spot something that is incorrect or not working do not assume it is obvious and we will notice. We request and depend on your email and bug reports at this time. If you are working with commercial support your provider is expected to participate on your behalf.

Keeping GeoServer sustainable requires a long term community commitment. If you are unable to contribute time, sponsorship options are available via OSGeo.

Java 11 Minimum

With this release GeoServer no longer supports Java 8, and it is time to upgrade to Java 11 at a minimum. Our build system tests GeoServer in with Java 11 and Java 17 which are both long-term-support OpenJDK releases.

JVM 11 Minimum

If you try starting this version of GeoServer with Java 8 it will produce the following failure:

java.lang.UnsupportedClassVersionError: org/geoserver/GeoserverInitStartupListener
has been compiled by a more recent version of the Java Runtime (class file version 55.0),
this version of the Java Runtime only recognizes class file versions up to 52.0

For more information please see our User Manual Installation (User Manual) and Java Considerations (User Manual) pages.

CSS Cleanup

The first big internal change for this release of GeoServer is a cleanup of the theme used for the GeoServer web administration application. Previously the pages had lots of little styling adjustments to try and get components to line up correctly and appear okay.

With this update all of the handmade styling changes have been removed, and everything is managed by the “geoserver.css” theme.

Thansk to Michel Gabriël (GeoCat) who started this work at the Bolsena code-sprint as a labour of love (well frustration).

Spring Upgrade

The second internal change for this release of GeoServer in an upgrade to Spring Framework used to wire the internals of GeoServer together.

While this should not result in any change to functionality, it has resulted in quite a lot of carefult quality assurance and testing to ensure everything is still connected and works as intended.

Your “it works” feedback during the release-candidate testing cycle is valuable and will make Joseph Miler (GeoSolution) who worked on this activity feel good.

  • GEOS-10779 Upgrade GeoServer Core Spring to 5.3.23 and Spring Security to 5.7.3

Windows installer Java 11 Update

We are especially interested in feedback on the Java 11 minium transition for those using the Windows Installer (none of our core development team is in position to test so we are depending on you).

The installer will correctly detect the Adoptium JRE 11:

Oracle JDK 17 Manual

Early feedback indicates it is unable to detect Oracle JDK 17; but you can use Browse to manually select this JDK:

Oracle JDK 17 Manual

  • GEOS-10890 Wrong path for the license file in the Windows installer script

Thanks to Juan (GeoCat) for troubleshooting the windows installer for this release.

Feature Type Description

A welcome new feature, building on top of the ability to customize FeatureTypes is the ability to provide a description for each attribute. This information is used in WFS DescribeFeatureType to provide a human readable name or description for the attributes being published.

Attribute Descriptions

  • GEOS-10868 Add support for editable description in GeoServer customize feature type table


The traditional OGC Open Web Services have not had automated CITE tests run for a while, but a few fixes have been made to restore CITE compliance:

  • GEOS-10787 CITE WCS 1.1.1 - Throw exception on bad ‘store’ parameter

  • GEOS-10788 CITE WCS 1.1.1 - Empty InterpolationMethod should throw exception

  • GEOS-10757 CITE: WMS <Style> has elements in wrong order (DTD validation)

  • GEOS-10782 CITE WFS 1.1 - HITS mimetype is incorrect

  • GEOS-10783 CITE WFS 1.1 - Check customized feature type to determine if transform wrapper needed

  • GEOS-10784 CITE WFS 1.1 - don’t do illegal geometry conversions

  • GEOS-10785 CITE WFS 1.1 - Data Dir - allow anonymous users to modify data

Thanks to David Blasby (GeoCat) for this work on behalf of the GeoCat Live Project. David address several errors in the CITE testing for these services while addressing the above issues for the GeoServer community.

A number of CITE conformance issues remain open, notably the handling of acceptsVersions with a mix of older protocols (such as WFS 2.0, WFS 1.1 and WFS 1.0). If you are interested in funding or sponsoring this activity please visit our sponsorship page.

Community Updates

The following community module has been retired:

  • GEOS-10778 Retire GeoStyler community module

    The plugin is now maintained outside of the GeoServer repository at https://github.com/geostyler .

Security community modules

With the upgrade to Spring Security to 5.7.3 mentioned above, now is a good time for any teams working with community security modules to perform integration testing.

A reminder that these modules are in need of your support to be recognized as an extension (and be included in our automated testing). Contact the appropriate module maintainer (Alessio or David) to see how you can assist.

OGCAPI community module Updates

The OGCAPI community module remains under active development:

  • GEOS-10758 OGCAPI - Features - Add storageCrs property for Collections

  • GEOS-10888 OGC API styles OpenAPI document points to dangling remote resources

  • GEOS-10854 Move the OGC API OpenAPI definitions to the “openapi” resource

  • GEOS-10855 Update the new OGC APIs so that the major version number is part of the path

  • GEOS-10881 Add Content-Crs header to OGC API

  • GEOS-10885 Remove Axis Order from OGC API Header

Andrea (GeoSolutions) has been working towards CITE compliance on behalf of Geonovum.

OGC API Features

OGC API Features

As a community module GeoServer OGC API is made available to developers for collaboration, and can also be accessed as a nightly build for feedback. If you are in a position to support this activity with time, money or resources please contact Andrea.

OGC API Features

Improvements and Fixes

New Feature

  • GEOS-10696 Allow configuration of Output Format types allowed in GetFeature


  • GEOS-10735 Obfuscate secret key in S3 Blob Store, avoiding requiring reentry when editing and HTML source visibility

  • GEOS-10739 Contact information user interface feedback for welcome message

  • GEOS-10740 Service enabled does not respect minimal/custom service names

  • GEOS-10750 German Translation Overhaul Part 1

  • GEOS-10755 WCS 2.0 module should not use string concatenation to build XML

  • GEOS-10762 Allow enabling auto-escaping for WMS GetFeatureInfo HTML templates

  • GEOS-10814 Update jdbc config to use consistent SQL formatting

  • GEOS-10879 Dispatcher should not respond to non standard HTTP methods


  • GEOS-10798 Sphinx site http://sphinx.pocoo.org/ is outdate

For the complete list see 2.23-RC1 release notes.

About GeoServer 2.23 Series

Release notes: ( 2.23-RC1 )

by Gabriel Roldan at March 14, 2023 12:00 AM

March 08, 2023

At a recent tech conference hosted by a proprietary software company one of the presenters said

We’re serious about open source, and we use it to build our software

I guess he thought that this was a virtuous statement of coolness and openness. The speaker then went on to talk about the ways that the company was giving back to the open source community.

It prompted me to think about the absorption of open source libraries and tools into proprietary software and the extent to which software businesses give back to these foundational open source projects or leech off of them.

You’ve probably seen this xkcd cartoon

If you are serious about open source then contribute to it and support it, don’t just use it and leave the effort to someone else.

by Steven at March 08, 2023 03:35 PM

QGIS 3.30 was released late last week and we are pleased to announce the new features introduced as a part of our latest crowdfunding campaign to improve 3D, point cloud and elevation data.

Thank you

First and foremost, thanks to the generous support from the community to fund our work. Here is the list of our contributors in no particular order:

IGN (INSTITUT NATIONAL DE L’INFORMATION GEOGRAPHIQUE ET FORESTIERE), National Land Survey of Finland, K2 Engineering GmbH, ProScape Consulting, Västra Götalandsregionen, Kristianstads kommun, IGN FI, L’Arrière Guichet, Septima, QWAST-GIS, ATAPEX s.r.o., REDcatch GmbH, F.A.R.M. Facilitazioni Agroecologiche Regionali Mobili, EPYMA TERRITORIO Y MEDIO AMBIENTE, SL, GEO EXPLORATION LTD, Bohannan Huston, Inc., Lidar Guys, Neuchâtel- Service de la géomatique, Wooding Geospatial Solutions, Ville de Vevey, QGIS User Group Switzerland, Ecophylla Consulting, Refactor, Locate Press, Alta ehf, Oester Messtechnik GmbH, RUDAZ+PARTNER AG, BayesMap Solutions LLC, GEOACE, Natalie Gyles, Andreas Neumann, Dougal Munro, Spatial Thoughts, Cicada Systems GIS Consulting, Cori Hermle, Powell Asset Mapping LLC, Darren Farmer, Greg Hall, Ecothought Pty Ltd, Gabriel Diosan, Bhutan QGIS Group, Ultimatum Finesse, Balanced Risk Strategies, Ltd, Concordia University, Burmis Studio Inc., Nicholas Hadaller, Angello Villatoro, Yoichi Kayama, Hennessy Amor Becerra Ayala, Flow Design Limited, BNHR.XYZ, Roberto Moyano, Benjamin Kuster, Goldspot, North River Geographic Systems, Inc, David W. Wormuth, Victor Graphics, Valley Spatial, Stephen Mather, SANTIAGO AURELIO MOTA, Kelly Crowell, Brian Duhan, Paddy Fisher, OSGEO:UK, Christian Gugl, GIP CRAIG - Centre Régional Auvergne-Rhône-Alpes de l’Infromation Géographqiue, Raphael Mabit, Tibor Lieskovský, Kerstin Fohlert, Zhan Li, Bernd Vogelgesang, Marlin Müller, Johannes Bonekamp, Stefan Giese, Fabian Faßnacht, QGIS Sweden user group, Falo, DAVID GARCIA HERNANDEZ, Lint Data and Geospatial, Cliff Sin Wai Lau, Grzegorz Sapijaszko, Łukasz Rapa, Alessandro Pintucci and Maarten Pronk.

Our gratitude also goes to those who want to remain anonymous.

Global map shading

Map data without global terrain shading

Global terrain shading for point clouds, dem and vectors

To see this feature in action, you can open QGIS project properties and under Terrain, there should be an option for Global Map Shading. You will need to first add a raster as your DEM under the Terrain section.

Elevations of all these layers are combined and the considered elevation is chosen depending on one of two methods:

  1. the highest elevation between raster, mesh or point cloud layers will be selected.
  2. elevation will be selected based on the order of layers in the layer panel.

Depending on the context and the use of the map the user can choose the more appropriate method.

For now, the shading methods implemented are the Eye Dome Lighting and the hill-shade. More methods could be added in the future - such as ambient occlusion.

The user can choose the elevation shading settings in a specific UI widget that can be found in two places:

  1. under the Project Properties, within the same tab of the project elevation settings.
  2. under the Styling Panel, a new tab is added for quick access to the user.

Global terrain shading settings in project properties

Global terrain shading settings in style panel

Profile elevation within print composer

This work was carried out by our collaborator North Road. The profile tool can embed elevation profiles within print layouts. It is possible to add beautifully styled profiles in your print outputs.

Embeding elevation profile in the print composer

To use elevation profiles in print layouts, simply click the Add Elevation Profile button icon elevation profile in print composer in the toolbar, and then to initialize it, copy profile configuration from an existing elevation profile from QGIS main window using the “Copy From Profile” button.

Elevation profile settings in the print composer

3D navigation improvements

With the new improvements, you can:

  1. move camera vertically using ctrl+shift+left mouse button
  2. keep zooming with the wheel while moving the mouse
  3. continue right mouse button zooming when pointer exits the viewport

Improve zoom-extents in 3D

The terrain’s and point cloud layers’ elevation range are taken into account so that the camera is not positioned below the scene’s contents, which was the case when using the terrain’s vertical scale setting to exaggerate the elevation differences.

Limit 3D scenes’ 2D extent

3D Views can now be limited to a specific 2D extent. The terrain is clipped and no 3D features beyond that extent are loaded, making it easy to render specific areas of big QGIS projects. The project’s 2D extent is used by default which can then be adjusted in each 3D view separately using the new General tab in 3D configuration.

Limiting 3D map extent

Limiting 3D map extent

Future updates

There will be more features planned for QGIS 3.32. We are finalising the Processing framework for point cloud data and it should be available on QGIS master in coming weeks.

Please do not hesitate to contact us if you have any suggestions to improve QGIS 3D and point cloud support.

March 08, 2023 05:00 AM

I'm catching up on three weeks of running in this post. I'm making progress. Poor weather, knee pain, and a return of last summer's PACs complicated my training a bit. I'd like to have run a little more, but have been mixing in more high quality speed workouts and have been consistent with weight training and yoga. While not in the same form that I was when training to peak in May 2019 or July 2020, I'm not in terrible early season shape. Here are the numbers.

Week nine:

  • 6 hours, 15 minutes running

  • 30.1 miles

  • 2,441 ft D+

On Sunday I got out for a hilly run in the snow.


Snowy Howard Trail with large mammal tracks to the left

Week ten:

  • 5 hours, 7 minutes running

  • 28.3 miles

  • 1,122 ft D+

Week 11:

  • 4 hours, 56 minutes running

  • 25.8 miles

  • 2,208 ft D+

On Saturday local trails started opening up again and I got a nice long run on dry dirt. It was wonderful.


Horsetooth Reservoir in transition from winter to spring

by Sean Gillies at March 08, 2023 04:59 AM

March 07, 2023

Atlas of Canada International Polar Year Wall Map

The Maps for HTML community development has been happening “seasonally” for a few years now, driven in large measure by student internships. We have had excellent experiences with the co-op programs of the University of Waterloo, and Ottawa University here in Canada. Students generally arrive quite new to the field of Web development, and we show them what we know and what we’re working on and let nature take its course, sustained of course by MDN and browser DevTools! The results have been very good so far, and it’s time to review some of the things we’ve undertaken this term.

Autonomous agents

In September 2022, we held a hybrid meeting of the community group, with some of us physically present and others dialled in from around the globe. There were some interesting discussions and some of those discussions have led directly to activities this term.

For example, at our F2F, we were talking about map semantics (the subject of an earlier post), and Ed noted that the visual character of a map is one thing, but what is the meaning of the thing that is depicted by the map?

Ed: How do we describe the location semantics in an html web page and make it available to the autonomous agent?

Now, semantics is a profound topic, one that is perhaps even more relevant in today’s world of AI and generated prose. Anyway, not to go down the AI chatbot rabbithole, I have posited before that the central characteristic that makes a map special, and “semantic”, is the shared definition of the coordinate reference system used by the map. Clearly, shared coordinate reference system definitions are at the heart of geospatial interoperability, but are they enough to allow HTML authors and autonomous agents to clearly differentiate, say, Paris, Ontario, from Paris, France? Certainly! But how does that translate to something meaningful for the user of a map? A visual user can see, perhaps if necessary by zooming in or out, that what is depicted is clearly in one location or the other. Similarly, the markup of a declarative web map visually and computationally places the map in Ontario, or France, or wherever. But what of non-visual users, or for that matter, autonomous agents (web crawlers) and, by extension, search engine users? What does the map mean to them? Ed was unequivocal about where the current generation of JavaScript maps leaves them.

Ed: From the point of view of an autonomous agent, what they see in the JavaScipt (web map) is invisible i.e. nothing

We strongly agree on this point! To address this problem within the scope of the MapML proposal for the Web, Kevin developed a custom element called <map-caption>. The <map-caption> element is a way of allowing the page author to describe and differentiate the map’s meaning explicitly for accessibility technology and potentially for search engine users, which may be especially important if search engines are incapable of spatial indexing. The tight coupling of the caption with the spatial focus of the map state should allow both users and crawlers to leverage map semantics to the fullest extent possible. Please, don’t be shy, hop onto our topic discussion and share your views. Nothing is standardized yet, and we want to ensure we standardize something useful to folks and their autonomous agents.

Map width and height

A long-standing need has been to lower the getting-started barrier for newcomers to HTML Web mapping, since inclusion is our central objective. Way back in the Polymer days, our polyfill supported the width and height map viewer attributes, but during Web Components 1.0 refactoring, those attributes were not carried forward. Back in 2021, Eric spent some time experimenting with our <mapml-viewer> and one of the most confusing moments of that experience was the lack of width and height attribute support, because we had come to rely on CSS being supplied for these values, and the underlying mapping engine that powers our proposal is highly dependent on having a defined container element height to work with. Even though width and height no longer mean what they used to for HTML images, for example, they still play a role in the efficiency of the browser layout process. So, Jacky brought back the width and height attributes for use with our <mapml-viewer>, hopefully making the getting-started process a little less confusing by enabling more paths to success, and perhaps polyfilling a similar role to that played today by the <img> width and height attributes, for a future HTML map widget.

GeoJSON is Everywhere

Along the way, many people have suggested that support for GeoJSON might be essential for a standard Web map widget. After some soul searching, because we don’t want to make this proposal any larger in scope than it must be, we decided to implement a speculative polyfill for GeoJSON.

Aliyan did some nice work pulling that together, first as a library function that you had to import and later (currently) as part of the <mapml-viewer> and <layer-> element WebIDL APIs. These APIs are partly exposed as map viewer context menu option for Paste (P), which, if your clipboard is loaded with a GeoJSON feature or featurecollection text blob, will create a map layer with a default graphic and textual representation of the features. If you want to apply custom CSS styles to the map features that are generated by pasting, you can always hook your code directly into these APIs, as shown by this experiment.

Context is Everything

Hanyu dived into the CSS pool and made the behaviour of the map and layer controls’ context menus more predictable and testable, not to mention nice looking and accessible to keyboard users.

The map context menu, showing the copy submenu, and the layer context menu are shown above

One of our epics is to make MapML self-perpetuating and hackable, hopefully following in the footsteps of the “View Source” culture established by HTML. To that end, we have created user documentation and tutorials that try to help newcomers climb their learning curve. Some of the functions exposed by the right-click / Shift+F10 context menus include copying various bits of MapML markup that can be used to help you create your own maps from close to scratch.

All the user-facing functionality should be localized, and for that we turn to our browser extension, which we use to polyfill the browser chrome. In addition to localized UI, we have recently added the French language to our documentation site. Our documentation approximates for the MapML proposal what the Mozilla Developer Network docs do for HTML and Web APIs. If you are interested in making Web maps a global standard, please get in touch and potentially help the initiative by contributing your native language.

On the Road to 1.0.0

That’s all for now. We’ll have much more to say at the end of our work term, but we think we are heading towards a “1.0.0” release, which will mark a major milestone in this effort. Stay tuned. As always: new community members and contributions are always welcome.

by Peter Rushforth at March 07, 2023 05:12 PM

You may be wondering where Oslandia’s name is coming from ? Or maybe you already know ? In this article we focus on the “OS” part of Oslandia : OpenSource !

Oslandia positions itself as IT expert in the field of OpenSource geographical information systems. QGIS is namely one of the proheminent opensource softwares for the geospatial industry. This position is a key element of our business model.

But do you know how we work behind the scene ? This article will give you an opportunity to discover some of our contributions to the OpenSource ecosystem.


Our general business model is based on projects we carry out for our clients. They fund us to design and implement solutions adapted to their needs and requirements. Part of these developments consist in core development of Opensource software. This allows us to contribute actively to FOSS4G components.

But this funding method makes it complicated to fund maintenance, or new exploratory developments, as well as communication, community management or other tasks necessary for healthy opensource projects.

As a consequence, we introduced at Oslandia a mechanism of internal OpenSource project grants.

These grants constitute self-investment from the company into the OpenSource ecosystem, and can be applied to new projects, research and development or existing projects.

This mechanism has multiple interests :

  • For opensource projects : maintenance and new contributions
  • For Oslandia : image and potential new business opportunities
  • For the team : work on projects that matter to them

These OpenSource grants consist in a large range of possible tasks, as we often say : “Opensource projects are not only code”. Instead of developers, we prefer the term contributors. Development, code review, maintenance, documentation, community management, communication, each collaborator can choose the type of task to focus on.

We differentiate software maintenance grants and opensource project grants. We call the latter “OpenSource mini-projects

Software maintenance consists in refactoring, bugfixing, packaging, release management… All these tasks need dedicated time which is difficult to fund directly on client’s project.

Opensource mini-projects grants are specific opensource proposal which can be submitted by any collaborator on any subject. We then vote on the best proposal and the team can start working on the subject within the allocated budget.

Some numbers

We allocate around 5% of the global production time to software maintenance grants. Our Opensource maintenance grant for 2022 is therefore approximately 190 days of work. It mainly focus on QGIS, PostGIS, QWC2, Giro3D and a few other components we actively maintain.

We also allocate 5% of the global production time to opensource mini-projects grants. It represents an additional 190 days of work for 2022.

Oslandia therefore invests almost 400 days of work into the OpenSource ecosystem, outside of direct contributions for client’s projects.

Opensource Mini-projects

OpenSource mini-projects grants are submitted by Oslandia’s collaborators and focus on various task and thematics : innovation, development, design, prototyping, communication or any other kind of Opensource contribution.

Proposals have to define goals, deliverables, planning, team and needed budget. Then we evaluate the proposals given the following criteria :

  • proposal coherency ( e.g. deliverables vs budget )
  • alignment with Oslandia’s strategy
  • innovation level
  • business opportunities
  • fun and motivation
  • impacts in terms of communication
  • links with other projects at Oslandia
  • possibility of extra R&D funding

We then vote on best proposal and manage these mini-projects just as a client project.



The maintenance grant on QGIS allowed us to work on the following tasks :

  • Bugfixing
  • Code review for PRs submitted by other developers
  • Code refactoring
  • Documentation
  • Packaging pipeline
  • OSGeo4W improvement

OpenSource mini-projects grants

During the year of 2022, we worked on the following mini-projects :

In 2023 we will continue to work on these projects, and others ! for example pg_featureserv, py3dtiles, infoclimat website, MapProxypgRouting


This investment mechanism allows Oslandia to be an opensource “pure player” and contribute actively to these OpenSource projects and to the OpenSource ecosystem as a whole.

Should you be interested in our contribution model, or if you have any question regarding our internal OpenSource grant program, do not hesitate to contact us : info@oslandia.com !

by Vincent Picavet at March 07, 2023 03:23 PM

Lizmap Web Client 3.6 est arrivé, 3.5 continue, 3.4 s'en va

Nous sommes heureux d'annoncer la sortie de Lizmap Web Client 3.6, la nouvelle version majeure.

Cette version met principalement l'accent sur l'interface d'administration et les outils pour les géomaticiens afin de faciliter la gestion des projets et applications web cartographiques publiés avec Lizmap.

La publication de cette nouvelle version signifie la fin du support de la version 3.4, mais nous continuons à maintenir la version 3.5.


Communauté d'agglomération du Grand Narbonne
Conseil Départemental du Gard
Les Portes du Soleil
Syndicat Départemental d'Énergie et d'Équipement 48
Direction Départemental du Territoire et de la Mer de l'Hérault

Pré-requis et installation

Il est désormais requis d'avoir un QGIS serveur minimum 3.10. Nous recommandons cependant d'utiliser une version LTR plus récente, comme la version 3.22 ou bien même la dernière version LTR 3.28.

Depuis Lizmap Web Client 3.4, l'installation de l'extension QGIS serveur Lizmap server était fortement recommandée afin de débloquer toutes les fonctionnalités.

Désormais, l'installation de l'extension sur QGIS serveur est obligatoire. Pensez à vérifier votre installation dans la page "Information serveur" et à finaliser votre installation, notamment sur la variable environment. Suivez les instructions dans votre panneau d'administration, page "Information serveur".

Même si vous continuez à utiliser Lizmap Web Client 3.5, pensez à installer l'extension Lizmap server sur QGIS serveur !

Dorénavant, à chaque nouvelle sortie de Lizmap Web Client, la version minimum de l'extension sera incrémentée. Il faudra donc mettre à jour de votre côté à chaque version.

Ces contraintes concernent le serveur Lizmap et sont donc à la charge de celui qui gère le serveur.

Information serveur

Interface d'administration

L'interface d'administration intègre les nouveautés suivantes :

  • De nouveaux droits ont été ajoutés pour pouvoir définir un groupe d'éditeurs. Ce groupe concerne les personnes qui publient des cartes QGIS vers l'application Lizmap Web Client. Cela permet de mieux distinguer les administrateurs des éditeurs. Dans QGIS bureautique, vous devez fournir un nom d'utilisateur qui soit au minimum un éditeur.
  • nouvelle page montrant la liste des projets publiés dans un tableau dynamique Projets QGIS. On retrouve dans ce nouveau tableau des métadonnées sur votre projet tel que la date de dernière modification du projet QGIS, la version de QGIS bureautique utilisée, de l'extension Lizmap, etc.

Plus de propriétés de projet sont affichées si l'outil qgis-project-validator (disponible sur notre offre d'hébergement lizmap.com) a été utilisé :

  • Nombre de couches invalides et liste des noms de couches
  • Mémoire utilisée pour charger le projet (en Mo)
  • Temps de chargement du projet (en secondes)
  • Fichier de LOG QGIS écrit lors du chargement du projet

Cette page a pour but de vous aider à identifier les "anciens" projets sur votre serveur Lizmap et afin de les mettre à jour. Pour cela, nous vous recommandons d'utiliser la même version QGIS bureautique que votre QGIS serveur et d'installer la dernière version de l'extension Lizmap disponible.

Note très importante, les projets QGIS dont le fichier de configuration Lizmap a pour version cible Lizmap Web Client 3.2 ou inférieure ne seront plus consultables. Pensez-donc à regarder les avertissements dans cette nouvelle page. Pour débloquer de tels projets, il faut les rouvrir dans QGIS bureautique avec la dernière version de l'extension Lizmap bureautique que QGIS vous propose, puis ré-enregistrer la configuration.

Page des projets

  • La création de nouveau répertoire Lizmap est simplifiée. Le formulaire est désormais plus intuitif et des droits sont cochés par défaut.
  • La page de gestion des droits des groupes et des utilisateurs a été revue afin de faciliter leur gestion.
  • La page de configuration des répertoires permet de configurer les entête CORS (Présentation CORS sur MDN). Elles permettent de pouvoir réutiliser les flux OGC (WMS, WFS) de Lizmap Web Client dans d'autres applications sur d'autres domaines. Il est ainsi possible d'intégrer des flux WMS en provenance de Lizmap Web Client dans une application construite avec mviewer.

Dans QGIS bureautique

Dans l'extension Lizmap pour QGIS bureautique, on trouve de nouvelles fonctionnalités de configuration :

  • Activer l'affichage automatique de l'image de légende pour une couche au démarrage de la carte lizmap. Attention à la charge sur votre serveur avec cette option (au démarrage, ces images de légende visibles seront chargées).
  • Activer le téléchargement d'un objet géographique depuis la popup
  • Activer OpenTopoMap comme couche de fond

Il est désormais possible de prévisualiser les graphiques dans l'onglet Dataviz.

Il pourra aussi bénéficier de la liste des groupes configurés dans l'interface d'administration de Lizmap Web Client pour gérer correctement les restrictions au niveau du projet, ou la visibilité d'une couche, ou encore pour définir l'édition d'une couche.

Assistant des groupes

Interface utilisateur

Message d'erreur au chargement d'une application Lizmap

Dans les versions précédentes, lorsque Lizmap Web Client rencontrait des erreurs lors du chargement d'une application Lizmap, le message Service non disponible apparaissait en arrière-plan de la fenêtre de chargement.

Ce message ne s'affiche désormais plus. Si une erreur survient au chargement, un message explicite est affiché afin de faciliter les retours des utilisateurs.

Si un script JavaScript additionnel contient une erreur, alors un message d'erreur est, lui aussi, affiché.

Affichage des libellés des valeurs pour une entité

Dans les interfaces du formulaire de filtrage et de la table attributaire, les valeurs sont remplacées par leur libellé, comme dans QGIS.

Les valeurs des champs sont remplacées par leur libellé dans le cas où l'outil d'édition du champ est Valeur relationnelle, Référence de la relation et Liste de valeurs. Cette configuration se fait dans la fenêtre de Propriétés de la couche, onglet Formulaire d'attributs de QGIS. Dans le cas des outils d'édition Valeur relationnelle et Référence de la relation, il faut que la couche source (contenant les libellés) soit publiée en WFS.

Édition: recommencer le dessin

Lors de l'édition d'un objet, une fois la géométrie dessinée il est maintenant possible de l'effacer pour recommencer le dessin.

Il est toujours possible de modifier un dessin dans le contexte de l'édition.

Zoom sur un objet à l'ouverture de la carte

De nouveaux paramètres d'URLs sont disponibles pour pouvoir zoomer sur un ou plusieurs objets et afficher leur popup :

  • layer : Nom de la couche dans les services WFS et WMS
  • filter : Filtre de la couche pour initier le zoom
  • popup=true: pour afficher la ou les popups des objets du filtre

Les paramètres layer et filter seront utilisés pour des requêtes de types WFS et WMS, il faut donc s'assurer que ceux-ci sont bien compatibles avec les 2 types de services.

Par exemple, on souhaite réutiliser cette carte de Montpellier montrant le cadastre au format FlatGeobuf en fournissant un lien personnalisé qui ouvre la fiche de la place du Peyrou.

Ce parc a pour identifiant unique 340172000BX0079 dont le champ est geo_parcelle. Il faut donc ajouter à l'URL ci-dessus :

  • layer=parcelle
  • filter=%22geo_parcelle%22%20%3D%20%27340172000BX0079%27
  • popup=true

Ce qui donne


Pour information, la valeur du filtre a été obtenue à l'aide du code JS suivant :

encodeURIComponent("\"geo_parcelle\" = '340172000BX0079'")`


Vous pouvez télécharger le dernier zip sur notre page des sorties.

Vous pouvez également consulter la liste des modifications ("changelog") de la version 3.6.0, 3.6.1 et 3.6.2.

Nous espérons que vous allez apprécier cette nouvelle version 🦎

L'équipe 3Liz

by L'équipe 3Liz at March 07, 2023 11:00 AM

Lizmap Web Client 3.6 has landed, 3.5 still alive, 3.4 is retired

3Liz is pleased to announce the release of Lizmap Web Client 3.6, the new major version of the application.

This new version is mainly focused on the administration panel and tools for GIS technicians to help to manage their QGIS projects published on Lizmap.

This new major version means that the Lizmap Web Client 3.4 is no more maintained. However, we are still maintaining the 3.5 version.


Grand Narbonne urban community
Gard Departmental Council
Les Portes du Soleil
Syndicat Départemental d'Énergie et d'Équipement 48
Direction Départemental du Territoire et de la Mer de l'Hérault

Pre-requirements and installation

It is now required to have a minimum QGIS server 3.10. However, we recommend using the latest LTR version , i.e. version 3.22 or even the latest LTR version 3.28.

Since Lizmap Web Client 3.4, the installation of the QGIS server plugin Lizmap server was strongly recommended in order to unlock all features.

Now, installing the plugin Lizmap server on QGIS server is mandatory. Do not forget to check your installation on the "Server Information" page in the administration pages and finalize it, mainly the environment variable. Follow the instructions in your administration panel, "Server Information" page.

Even if you continue to use Lizmap Web Client 3.5, remember to install the plugin Lizmap server on QGIS server!

From now, on each new release of Lizmap Web Client, the minimum version of the plugin will be incremented. Therefore, it will be necessary for you to update it on each version.

These constraints concern the Lizmap server and are therefore the responsibility of whoever manages the server.

Information serveur

Administration panel

The administration interface includes the following new features:

  • New rights have been added to be able to define a group of editors. This makes it easier to distinguish administrators and publishers. Publishers are the users allowed to configure and send QGIS projects to the Lizmap server. In QGIS desktop, you must provide a username that is at least an editor.
  • new page showing the list of all projects in a dynamic table. In this new table you will find metadata about your projects such as the date of the last modification of the QGIS project, the version of QGIS desktop, the Lizmap plugin, etc.

More project properties are shown if the tool qgis-project-validator (available on our hosting offer lizmap.com) is used:

  • Number of invalid layers with the list of the layer names
  • Memory used to load the project (in MB)
  • Loading time of the project (in seconds)
  • QGIS LOG file written when loading the project

This page aims to help you identify "old" projects on your Lizmap server and update them. For this, we recommend using the same QGIS desktop version as your QGIS server and installing the latest version of the Lizmap plugin available.

Very important note: QGIS projects which were designed for Lizmap Web Client 3.2 or lower will no longer be available. Remember to look at the warnings in this new page. To unlock such projects, they must be reopened in QGIS desktop with the latest version of the Lizmap plugin available in your QGIS plugin manager.

Project page

  • The creation of a new Lizmap repository has been simplified. The form is now more intuitive and some rights are checked by default.
  • The rights management page for groups and users has been redesigned to facilitate their management.
  • The repository management page allows you to configure the CORS header (CORS presentation on MDN). They allow OGC streams (WMS, WFS) from Lizmap Web Client in other applications on other domains. It is thus possible to integrate WMS flows coming from Lizmap Web Client in an application built with mviewer.

In QGIS desktop

In QGIS Desktop, there are new configuration features:

  • Enable automatic display of legend image for a layer when Lizmap starts. Pay attention to the load on your server with this option at startup.
  • Activate the download of a geographic object from the popup
  • Activate OpenTopoMap as a background layer

It is now possible to preview charts in the Dataviz tab.

It is also possible to get the list of the groups configured in Lizmap Web Client administration pages to correctly manage the restrictions at the project level, or the visibility for a layer, or to define the editing capabilities of a layer.

Group wizard

User interface

Error message when loading a Lizmap application

Before, when Lizmap Web Client encountered errors while loading a Lizmap project, the message Service not available appeared in the background of the loading window.

This message no longer appears. If an error occurs during the map loading, an explicit message is displayed to explain the encountered issue.

If an additional JavaScript script contains an error, then an error message is also displayed.

Displaying value labels for a feature

When opening an editing form or displaying the attribute table of a layer, the values (codes) are now replaced by their labels, like in QGIS desktop.

The field values are replaced by their labels if the field editing tool is Value relation, Relation reference and Value map. This configuration is done in the QGIS Layer properties window, Attributes form tab. In the case of the Value relation and Relation reference widgets, the source layer must be published in WFS.

Editing: start drawing again

When editing an object, once the geometry has been drawn, it is now possible to erase it to start drawing a new geometry from scratch.

It is always possible to modify a drawing in the context of editing.

Zoom on an object when opening the map

New URL parameters are available to be able to zoom in on one or more objects and display their popup:

  • layer: Layer name in WFS and WMS services
  • filter: Layer filter to initiate the zoom
  • popup=true: to display the popup(s) of the filter objects

The layer and filter parameters will be used for WFS and WMS type queries, so make sure that these are well compatible with the 2 types of services.

For instance, we would like to reuse this map of Montpellier showing cadastral data with the FlatGeobuf format by providing a customized link opening the popup from Park of Peyrou.

This park has 340172000BX0079 for its unique ID in the field geo_parcelle. Therefore, we need to add in the URL above :

  • layer=parcelle
  • filter=%22geo_parcelle%22%20%3D%20%27340172000BX0079%27
  • popup=true

It gives this final result :


For your information, we can have the value of the filter with this Javascript code :

encodeURIComponent("\"geo_parcelle\" = '340172000BX0079'")`


You can download the latest zip on our releases page.

You can also check the changelog of version 3.6.0, 3.6.1 and 3.6.2.

We hope you will enjoy this new version 🦎

The 3Liz team

by The 3Liz team at March 07, 2023 11:00 AM

We are pleased to announce the release of QGIS 3.30 ‘s-Hertogenbosch!

Installers for all supported operating systems are already out. QGIS 3.30 comes with tons of new features, as you can see in our visual changelog. QGIS 3.30 ‘s-Hertogenbosch is named after this year’s QGIS user conference and contributor meeting host city.

We would like to thank the developers, documenters, testers and all the many folks out there who volunteer their time and effort (or fund people to do so). From the QGIS community we hope you enjoy this release! If you wish to donate time, money or otherwise get involved in making QGIS more awesome, please wander along to qgis.org and lend a hand!

QGIS is supported by donors and sustaining members. A current list of donors who have made financial contributions large and small to the project can be seen on our donors list. If you would like to become a sustaining member, please visit our page for sustaining members for details. Your support helps us fund our six monthly developer meetings, maintain project infrastructure and fund bug fixing efforts.

QGIS is Free software and you are under no obligation to pay anything to use it – in fact we want to encourage people far and wide to use it regardless of what your financial or social status is – we believe empowering people with spatial decision making tools will result in a better society for all of humanity.

by underdark at March 07, 2023 07:55 AM

March 06, 2023

The next operation delivered in the build-out of Simple Polygonal Coverages in the JTS Topology Suite is Coverage Union. This is simply the topological union of a set of polygons in a polygonal coverage, producing one or more polygons as the result.  (This is sometimes called "dissolve" in the context of polygonal coverages.)

Union of polygons has long been available in JTS, most recently (and robustly) as the UnaryUnion capability of OverlayNG.  This makes use of the Cascaded Union technique to provide good performance for large sets of polygons.  But the constrained structure of polygonal coverages means unions can be computed much faster than even Cascaded Union.  Essentially, the duplicated inner edges of adjacent polygons are identified and discarded, leaving only the outer boundary of the unioned area.  Because a valid polygonal coverage has edges which match exactly, identifying duplicate segments can be done with a fast equality test.  Also, there is no need for computationally-expensive techniques to ensure geometric robustness.

This is now available in JTS as the CoverageUnion class.


To test the performance of Coverage Union we need some large clean polygonal coverages. These are nicely provided by the GADM repository of worldwide administrative areas.  

Here is some metrics comparing the performance of Coverage Union against OverlayNG Unary Union (which uses the Cascaded Union technique).  Coverage Union is much faster for all sizes of dataset.

DatasetPolygonsVerticesCoverage UnionOverlayNG UnionTimes Faster
France level 43,728407,1020.3 s8.5 s28 x
France level 536,612729,5731.07 s13.9 s13 x
Germany level 411,3022,162,1840.68 s27.3 s40 x

Union by Attribute

It's worth noting that unioning a set of polygons in a coverage leaves the boundary of the unioned area perfectly unchanged. So subsets of a coverage can be unioned, and the result still forms a valid polygonal coverage.  This provides a fast Union by Attribute capability, which is a common spatial requirement

GEOS and PostGIS

GEOS already supports a GEOSCoverageUnion operation.  At some point it would be nice to expose this in PostGIS, most likely as a new aggregate function (perhaps ST_UnionCoverage).

by Dr JTS (noreply@blogger.com) at March 06, 2023 08:57 PM

E vai, quest’anno la lista è più lunga. Ho letto di più, mi sono dedicato più assiduamente alla lettura in molti momenti dell’anno. Arrivato a fine anno i libri che ho letto a gennaio mi sembrano ricordi di un passato remoto!

The short comments are half in Italian and half in English for no good reason, it’s just how I happened to write them down.

Elena Ferrante, Storia del nuovo cognome. Storia di chi fugge e chi resta. Storia della bambina perduta

Non ho veramente niente di intelligente da dire. In questi libri c’è tutto, ogni persona che vive o passa dall’Italia dovrebbe leggerli, soprattutto per il femminismo ma anche per tutto il resto.

Elena Ferrante, La vita bugiarda degli adulti

Very convincing, as reminiscing as it can be of “L’amica geniale” series that I read last year. The reel of emotions, high and low, the teenager protagonist goes through is both familiar to me and firmly foreign – because it is centered on female bodies and experiences of trauma.
Naples is the permanent background, even though it’s mostly in a dualistic perspective of rich versus poor parts of the city.
I’m so happy that there are more books by Elena Ferrante I yet have to read.
(I was going to write something totally different in Italian, but out of respect for the nice people here I forced myself to write in English.. the short comment above is not bad, just different from what I had in mind)

Tina Merlin, Sulla pelle viva

Un libretto pesante come una montagna. Una denuncia feroce, umana, precisa di chi ha scelto di mandare a morire una valle intera con i suoi abitanti. Un documento storico importantissimo che ripete in modo innegabile chi sono stati e chi sono i maledetti infami di cui l’Italia deve liberarsi ancora oggi.

James Ellroy, La collina dei suicidi

I postponed reading this book for several months because even the title made me uneasy.

The third book about Lloyd Hopkins is more violent than the previous two. It’s less about complex thought processes and understanding the mind of a criminal, and more about swimming in a dark pool filled with corpses old and new. Enemies of the protagonist are now almost all other members of the Police department.
In a sense it’s more human than previous books, perhaps because Lloyd finally stops being a sexual predator.

Igiaba Scego, La linea del colore

Bellissimo, denso, multiforme, metaletterario, femminista, e infine tipograficamente appagante.

Il “making of” conclusivo è una ulteriore prova della grandissima Igiaba Scego. Mi stupisce che non ci sia scritta la parola “intersezionalità” nonostante il libro ne sia densamente intriso.

Andrea Campanella, Gli «eroi» sono finiti

Mai giudicare un libro dalla copertina. Questo libretto comprato usato a 1 € mi ha fatto esplorare un cliché letterario già noto in autori ben più blasonati, quello dei fascisti che proseguono a fare i loro sporchi traffici dopo la fine della guerra. È un cliché ma anche una verità storica che qui si mescola a un poliziottesco non male. Tutto ambientato in Liguria, che un po’ ci vuole.

Claudio Bo, Balbiquattro

Lettura abbastanza pesante, sia per il linguaggio ricercato e merlettato sia per la ripetitività del discorso, ma qualche passaggio gradevole nella scoperta dei luoghi del protagonista. Francamente imbevibile tutto il resto, per quanto probabile genuina memoria romanzata del periodo.

Marguerite Duras, L’amante

La brevità fa di questo libro un coltello ancora più affilato. La crudeltà di tutto è immensa, dalla famiglia, all’amore impossibile, al dominio coloniale, all’impossibilità di conunicare alla tragica morte dell’immortalità.

Armando d’Amaro, Genova indagine sotto le bombe

Un altro giallo Frilli, questo un po’ meno pretenzioso ma comunque aveva così tanti elementi che mi tornavano familiari che ho pensato persino di regalarlo a una collega: Genova, il finalese e le sue grotte, le campane, il funzionario della Soprintentendenza.

Abdulrazak Gurnah, Sulla riva del mare

Non c’è molto da dire sul libro scritto da un premio Nobel. Ma mi sento di dire che ho scoperto un altro ruscello di letture a cui attingerò nei prossimi anni. Anche questo è un libro africano, anche questo ibrido, figlio di due continenti. C’è un passaggio sull’archeologia, che ho condiviso con un gruppo di amicɜ, con loro grande diletto per la finezza con cui descrive quello che cerchiamo di capire:

Ma, pur sbiadite e incrostate, restano tuttavia tante linee, che sembrano frammenti ancora più scarsi del tutto: un lampo caldo nell’occhio quando la faccia è scomparsa, un odore che richiama una musica dalla melodia inafferrabile, il ricordo di una stanza quando la casa e la sua ubicazione sono ormai dimenticate, un pascolo vicino alla strada in mezzo al nulla. Così il tempo smembra le immagini del nostro tempo. O, per dirla in maniera archeologica, è come se i dettagli della nostra vita si fossero accumulati a strati e adesso alcuni strati fossero stati portati via dalla frizione di altri avvenimenti e pezzi di materiali a caso restassero ancora, qua e là, senza ordine.

Liza Marklund, Perla nera

This book starts throwing so many things in your face at once: geography, family, rape. It’s pleasantly out of my comfort zone (?!). I’ve heard it’s a bit different from Marklund’s other books. Ultimately it’s a hymn to infinite love, travel and Ken Follett.

Chimamanda Ngozi Adichie, Metà di un sole giallo

Ho letto finalmente “Metà di un sole giallo” di Chimamanda Ngozi Adichie. Era da diversi anni che era nella lista dei libri da leggere, più o meno da quando ho letto per la prima volta Chinua Achebe. Un paio di anni fa avevo solo letto un suo saggio che si chiama “Dovremmo essere tutti femministi”.

Questo libro è maestoso. I protagonisti sono i personaggi principali e sembra in certe parti della loro storia che riescano a controllare eventi più grandi, sulla scia dell’entusiasmo politico, dell’amore, dell’amicizia. L’impianto cronologico, con la sua alternanza tra il prima e il dopo, mi ha suscitato un sentimento di attesa e compassione per quegli eventi di cui già conoscevo per sommi capi il seguito. Ma tra i sommi capi si annidano molte storie, fatte di debolezze, di tradimenti, di incredibile generosità. E quelle danno trama e senso a tutto il romanzo.

La vicenda storica del Biafra è di quelle molto conosciute ma di cui, in maniera impeccabile nello stesso libro è scritto, siamo più abituati a conoscere le immagini che hanno reso famosi i fotografi che non le persone, tutte quelle morte e tutte quelle sopravvissute.

Il libro ha una sottotraccia molto esplicita, ovvero la scrittura stessa. Come si fa a scrivere di una guerra così atroce? Chi può essere in grado di scriverne? La risposta sembra essere: solo chi ne ha attraversato di persona le atrocità in prima persona. E la figura di Ugwu, che ho trovato in assoluto la più tragica, è proprio quella che sembra dare maggiore senso alla storia. La scomparsa nei capitoli finali, senza soluzione, è un elemento di angoscia difficile da dimenticare.

Chimamanda Ngozi Adichie, Americanah

There are separate parts of this book that have their own identity. When reading through the final chapters I wondered if this was really the same book I had started a few weeks earlier. This is to say, the protagonists have a powerful way of growing up and becoming something different as the story progresses.

What stuck with me the most was how Ifemelu was “not Black” until she arrived in the USA.

Mariama Bâ, Amica mia

Trovo ogni tanto dei libri negli scaffali dei miei suoceri che prendo in prestito per la lettura, e scopro autrici che hanno un posto importante nella letteratura mondiale. Questo libro è uno di quelli.

The writing is plain and moves forward slow and easy, but don’t be deceived. Each page is like a heavy stone, a new turn of the “plot”. The narrator sits, mourning and yet powerful thanks to her own writing.

Each page until the very end is so strong and deeply ties together the personal sphere and the political. The pregnancy of the young daughter of Ramatulaye is the final step in this woman’s liberation journey away from traditional roles and preconceptions.

by Stefano Costa at March 06, 2023 03:35 PM

February 28, 2023

February 27, 2023

Last might I cooked thit bò kho, an aromatic beef stew, from the recipe in Mai Pham's "Pleasures of the Vietnamese Table". The process starts with making colorful annatto-infused oil. The red-orange color is provided by caratenoid compounds named bixin and norbixin. Annatto pigment has long been used to color cheeses, junk food, and other things.


Bright red annatto-infused oil

This morning I put leftovers on a roll and sprinkled it with cilantro, mint, onion, and stewing juice. It's a very satisfying breakfast sandwich.


Stewed beef and carrots with herbs on a roll

I played with the "food" setting on my new phone's camera and got some colorful, but flawed photos. The setting has a limited focus area that I haven't learned to drag around properly.

by Sean Gillies at February 27, 2023 03:09 PM

A Embrapa Solos lançou a 5ª edição do Sistema Brasileiro de Classificação de Solos (SiBCS), resultado de um esforço conjunto de pesquisadores de diversas instituições brasileiras. A obra oferece uma estrutura de trabalho composta por um Comitê-Executivo Nacional assessorado por colaboradores regionais e núcleos locais de discussão das áreas de gênese, morfologia e classificação de solos. A Pedologia, disciplina que estuda os solos, vem ganhando interesse renovado no Brasil e no mundo, devido à importância do recurso solo em todas as questões de produção de alimentos, fibras e energia, mudanças climáticas e sustentabilidade ambiental.

O SiBCS é um sistema próprio para a classificação dos solos brasileiros, criado a partir dos primeiros levantamentos de solos sistemáticos realizados no Brasil nas décadas de 1950 e 1960. Os solos tropicais brasileiros apresentam peculiaridades que não eram totalmente contempladas nos sistemas existentes, desenvolvidos para outras condições climáticas e de terreno.

O documento nos apresenta uma tabela com as cores, nos sistemas PANTONE, CMYK e RGB, que deve ser utilizadas no mapeamento pedológico de todo o Brasil, considerando o Sistema Brasileiro de Classificação de Solos. Trata-se de uma tentativa de padronização das classes de solo, de forma que os mapas não fiquem sobrecarregados e, assim, não prejudiquem a compreensão das informações apresentadas.

Para facilitar o uso dessa simbologia para mapeamento pedológico eu tomei a liberdade de criar um arquivo .xml com os dados dos estilos de cores retirados da tabela do Sistema Brasileiro de Classificação de Solos. Esse arquivo, que pode ser facilmente importado para o QGIS, carrega as informações de todas as classes de solo e suas respectivas simbologias agregando os símbolos à biblioteca do software.

Faça o download Simbologias do SiBCS para mapas pedológicos no QGIS.

A instalação de uma nova simbologia no QGIS é bem simples, basta seguir os seguintes passos:

  1. Faça o Download do arquivo:“SiBCS-2018.xml”
  2. Feito o download do arquivo, abra o QGIS e abra a aba Configurações > Gerenciador de Estilos > procure o botão Compartilhar > Importar
  3. Navegue até a pasta onde se encontra o arquivo SiBCS-2018.xml” que você baixou.
  4. Feito isso você verá todas as novas simbologias que serão adicionadas a biblioteca do QGIS. Clique na opção selecionar tudo e depois em importar.

Pronto agora você tem todas as classes de solo e suas respectivas simbologias no seu QGIS, agora é só começar a mapear.

A Embrapa também disponibiliza um arquivo de estilo de cores, padronização de legenda do mapa de solos do Brasil 1:5.000.000, arquivo compatível com o Sistema de Informação Geográfica (SIG) QGIS, padrão de cores baseado no Sistema Brasileiro de Classificação de Solos (SiBCS) e a publicação de 2011, onde foram destacados com hachura as classes de solos eutróficas.
Acesse em: http://geoinfo.cnps.embrapa.br/documents/3023


Para mais tutorias de QGIS como esse acesse: https://narceliodesa.com/category/tutoriais/

O que vocês acharam deste tutorial
SiBCS - Simbologias para mapas pedológicos no QGIS ?

Aguardo seus comentários, dicas e sugestões.

💵 Faça uma doação para o canal via Picpay: https://app.picpay.com/user/narceliodesa
💵 Ou faça uma doação via PIX: narceliosapereira@gmail.com
⭐ Nos siga em todas as plataformas: https://linktr.ee/narceliodesa
📬 Contato comercial: narceliosapereira@gmail.com

The post SiBCS – Simbologias para mapas pedológicos no QGIS appeared first on Narcélio de Sá.

by Narcélio de Sá at February 27, 2023 12:44 AM

February 25, 2023

Today’s post is a geeky deep dive into how to leverage DVC (not just) data version control to track QGIS geoprocessing workflows.

“Why is this great?” you may ask.

DVC tracks data, parameters, and code. If anything changes, we simply rerun the process and DVC will figure out which stages need to be recomputed and which can be skipped by re-using cached results.

This can lead to huge time savings compared to re-running the whole model

You can find the source code used in this post on my repo https://github.com/anitagraser/QGIS-resources/tree/dvc

I’m using DVC with the DVC plugin for VSCode but DVC can be used completely from the command line, if you prefer this appraoch.

Basically, what follows is a proof of concept: converting a QGIS Processing model to a DVC workflow. In the following screenshot, you can see the main stages

  1. The QGIS model in the upper left corner
  2. The Python script exported from the QGIS model builder in the lower left corner
  3. The DVC stages in my dvc.yaml file in the upper right corner (And please ignore the hello world stage. It’s a left over from my first experiment)
  4. The DVC DAG visualizing the sequence of stages. Looks similar to the QGIS model, doesn’t it ;-)

Besides the stage definitions in dvc.yaml, there’s a parameters file:

  n: 10
  size: 0.5

And, of course, the two stages, each as it’s own Python script.

First, random-points.py which reads the random-points.n parameter to create the desired number of points within the polygon defined in qgis3/data/test.geojson:

import dvc.api

from qgis.core import QgsVectorLayer
from processing.core.Processing import Processing
import processing


params = dvc.api.params_show()
pts_n = params['random-points']['n']

input_vector = QgsVectorLayer("qgis3/data/test.geojson")
output_filename = "qgis3/output/random-points.geojson"

alg_params = {
    'INPUT': input_vector,
    'MIN_DISTANCE': 0,
    'POINTS_NUMBER': pts_n,
    'SEED': None,
    'OUTPUT': output_filename
processing.run('native:randompointsinpolygons', alg_params)

And second, buffer-points.py which reads the buffer-points.size parameter to buffer the previously generated points:

import dvc.api
import geopandas as gpd
import matplotlib.pyplot as plt

from qgis.core import QgsVectorLayer
from processing.core.Processing import Processing
import processing


params = dvc.api.params_show()
buffer_size = params['buffer-points']['size']

input_vector = QgsVectorLayer("qgis3/output/random-points.geojson")
output_filename = "qgis3/output/buffered-points.geojson"

alg_params = {
    'DISSOLVE': False,
    'DISTANCE': buffer_size,
    'END_CAP_STYLE': 0,  # Round
    'INPUT': input_vector,
    'JOIN_STYLE': 0,  # Round
    'MITER_LIMIT': 2,
    'SEGMENTS': 5,
    'OUTPUT': output_filename
processing.run('native:buffer', alg_params)

gdf = gpd.read_file(output_filename)


With these things in place, we can use dvc to run the workflow, either from within VSCode or from the command line. Here, you can see the workflow (and how dvc skips stages and fetches results from cache) in action:

If you try it out yourself, let me know what you think.

by underdark at February 25, 2023 04:57 PM

February 24, 2023

We published our new dates for this springs QGIS online courses.

The courses last two days (9:00 a.m. – 5:00 p.m.) and cost 990 CHF per person. As in our in-person courses, we limit our instructor to participant ratio to a maximum of 6 participants for one instructor and two instructors for 7 to 12 participants.

by Anna Randegger at February 24, 2023 02:56 PM

Le cours se déroule sur 2 jours (9:00 – 17:00) et coûte 990 CHF par personne (dîner et certificat inclus). Un enseignant sera prévu pour un maximum de 6 personnes et 2 enseignants pour 7 à 12 personnes.


A l’issue de ce cours, les participants seront en mesure de mettre en œuvre des projets complexes avec QGIS. Ils connaitront les propriétés de différents formats de données tels que Postgis et GeoPackage, seront capables de configurer des workflows pour le traitement de géodonnées avec des outils de geotraitement, de créer des impression au moyen de mises en page, d’importer/exporter des données Interlis et d’utiliser des outils de dessin pour la construction. Ils pourront également écrire des expressions et connaitront leur emplacement dans QGIS.
A la fin du cours, du temps sera réservé aux questions individuelles.

Programme jour 1

  • Versions de QGIS, processus de développement et organisation
  • Plugins QGIS importants
  • Échange de données avec des GeoPackages
  • Expressions, leur structure et leur lieu d’utilisation
  • Configuration de QGIS et utilisation de profils
  • Utilisation de certains fonds de plan (entre autres QuickMapServices, Vector Tiles), impression, etc.

Programme jour 2

  • Édition et travail efficaces avec la base de données PostGIS (entre autres Views)
  • Vérifier et exporter vers Interlis
  • Construire des workflows avec des outils de traitement et la modélisation graphique.
  • Gestionnaire de base de données
  • Informations concernant la collaboration avec QGIS

Connaissances préalables

Connaissances de base de QGIS https://www.opengis.ch/2023/02/24/cours-qgis-de-base-lausanne-05-04-26-04-2023/. Correspond à un cours pour débutants. Des connaissances de base en matière de base de données sont un avantage.
Aucune connaissance en programmation n’est nécessaire.


Ce cours est organisé par un organisme reconnu par QGIS. La certification des participants est incluse dans le prix du cours.


Installation de QGIS pour Windows, macOS ou Linux https://download.qgis.org

  • Nous utilisons la dernière version LTR 3.22
  • Aucun plugin ne doit être préinstallé.

by Anna Randegger at February 24, 2023 02:53 PM

Le cours se déroule sur 2 jours (9:00 – 17:00) et coûte 990 CHF par personne (dîner et certificat inclus). Un enseignant sera prévu pour un maximum de 6 personnes et 2 enseignants pour 7 à 12 personnes.


À l’issue de ce cours, les participants connaîtront les principales fonctions de QGIS Desktop, logiciel open source SIG et seront capables d’importer et d’analyser des données, de créer une carte avec une mise en page professionnelle et de saisir des objets avec des attributs et des géométries vectorielles.

Programme jour 1

  • Introduction
  • À propos du projet QGIS
  • Présentation de l’interface utilisateur
  • Extensions
  • Sources de données, formats de données et services web
  • Gérer les données dans le projet
  • Configuration du formulaire d’attributs
  • Symbologie et etiquettes

Programme jour 2

  • Expressions simples
  • Sélection et filtres
  • Table d’attributs, calculateur de champs, champs virtuels
  • Couches temporaires
  • Saisie et édition des géométries et attributs
  • Introduction outils de traitements
  • Analyse simple de données vecteurs
  • Mise en page avec le composeur d’impression

Connaissances préalables

Connaissance de base des SIG (par exemple, le terme “couche”) et des bases de données (par exemple, le terme “type de données” avec nombre entier/nombre/date/chaîne/booléen).


Ce cours est organisé par un organisme reconnu par QGIS. La certification des participants est incluse dans le prix du cours.


Installation de QGIS pour Windows, macOS ou Linux https://download.qgis.org

  • Nous utilisons la dernière version LTR disponible.
  • Aucun plugin ne doit être préalablement installé.

by Anna Randegger at February 24, 2023 01:55 PM

February 23, 2023

This is a very basic tutorial about Remotior Sensus, a Python package that allows for the processing of remote sensing images and GIS data.

It describes the main features of Remotior Sensus, such as the management of raster  bands.
Moreover, it includes the download of a Sentinel-2 image, the calculation of NDVI, and a tool to manage tables is presented.   
Also, the user manual is available at https://remotior-sensus.readthedocs.io.
Read more »

by Luca Congedo (noreply@blogger.com) at February 23, 2023 11:02 PM

February 22, 2023

February 21, 2023

February 20, 2023

Week eight was a planned rest week. I spent four days traveling to San Francisco for work, took Friday off to decompress, did some heavier than usual weight training on Saturday, and went for windy, muddy, short run today.

  • 1 hour, 26 minutes running

  • 6.9 miles

  • 856 ft D+

I only ran once in SF, up the Embarcadero and Telegraph Hill, but I did push hard on the steps to see where I'm at. I've been in better shape!

The hotel had bikes and I took one out on two different evenings. On St. Valentine's day I rode to a restaurant on Union Street and back, stopping at Fort Mason for some photos.


Golden Gate Bridge at dusk from Fort Mason

I will be running in earnest again next week.

by Sean Gillies at February 20, 2023 03:11 AM

A vulnerability has located in the GeoTools Library that allows SQL Injection using OGC Filter and Function expressions.

If you wish to report a security vulnerability, see instructions on responsible reporting. We also welcome your direct financial support.


SQL Injection Vulnerabilities have been found with:

  • PropertyIsLike filter, when used with a String field and any relational database based Store, or with a PostGIS DataStore with encode functions enabled, or with any image mosaic with an index stored in a relational database.
  • strEndsWith function, when used with a PostGIS DataStore with encode functions enabled
  • strStartsWith function, when used with a PostGIS DataStore with encode functions enabled
  • FeatureId filter, when used with any database table having a String primary key column and when prepared statements are disabled
  • jsonArrayContains function, when used with a String or JSON field and with a PostGIS or Oracle DataStore (GeoServer 2.22.0+ only)
  • DWithin filter, when used with an Oracle DataStore


We recommend upgrading. The following list of mitigations is addressing some of the issues (e.g., the PropertyIsLike issue has no mitigation for tables with a string field):

  1. Disabling the PostGIS Datastore encode functions setting to mitigate strEndsWith, strStartsWith (will cause severe slowdowns in parts of the WMTS multidimensional plugin functionality, if in use).
  2. Enabling the PostGIS DataStore preparedStatements setting to mitigate the FeatureId vulnerability.
  3. No mitigation is available for PropertyIsLike filter, you may choose to disable database DataStores until you are able to upgrade.
  4. No mitigation is available for DWithin with Oracle DataStore, you may choose to disable Oracle DataStores until you are able to upgrade.
  5. As a good practice to limit the attack surface, it’s important to give the database account used for connection pools the minimum required level of privileges (e.g., read-only unless WFS-T/importer/REST granule harvesting are used, access limited only to the schemas and tables needed for production usage)



Patched releases:

If you wish to volunteer to backport these fixes to other GeoServer series and make a release co-ordinate on the developers list. If you are not in a position to collaborate reach out to a commercial support provider to act on your behalf.

Thanks to Steve Ikeoka for responsibly reporting and fixing these issues. Thanks to Jody Garnett (GeoCat) for the stable and maintenance releases. Thanks to Andrea Aime (GeoSolutions) for back porting this fix to versions of GeoTools and GeoServer that are otherwise no longer receiving releases.

by Jody Garnett at February 20, 2023 12:00 AM

GeoServer 2.22.2 release is now available with downloads (bin, war, windows), along with docs and extensions.

This is a stable release of the GeoServer 2.22.x series, made in conjunction with GeoTools 28.2 and GeoWebCache 1.22.1.

This release was scheduled early to address a security vulnerability. Thanks to Jody Garnett for making this release on behalf of GeoCat Live.

Security Considerations

This release addresses a security vulnerability and is considered an essential upgrade for production systems:

For more information see OGC Filter Injection Vulnerability Statement.

Natural Earth 50m Sample Data

The Natural Earth ne workspace has been improved with 1:50m sample data offering the following:

  • improved detail
  • country labels in multiple languages
  • disputed regions

World 50m Update

The countries.sld style includes the following:

    <ogc:Function name="Recode">
      <ogc:Function name="language"/>

To try this out in French append &LANGUAGE=fr to any GetMap request, including Layer Preview.

World 50m French

These styles also now validate. Thanks to Jody Garnett (GeoCat) for this work.

  • GEOS-10624 Data directory and documentation update
  • GEOS-10836 The demo styles in “ne” workspace do not validate

Welcome Page Performance Improvements

The welcome page loading is now limited to a short amount of time to retrieve the list of workspaces and layers to select from. For large catalogues, with lots of security restrictions, that are unable to respond in this time, a simple text field is provided.

Welcome Dropdown Selection

To force the use of a simple text field the property GeoServerHomePage.selectionMode=TEXT can be used. Use DROPDOWN to force a selection control to be used, or AUTOMATIC to determine the behaviour based on catalogue performance as described above.

The default time out GeoServerHomePage.selectionTimeout=5000 for interaction can be adjusted if you would like to provide the catalogue more time to respond.

By default GeoServerHomePage.selectionMaxItems=1000 workspaces or layers can be loaded. This number may be limited further if you find browser performance is affected.

Thanks to Andrea (GeoSolutions) for these performance improvements, and Jody Garnett for a number of smaller fixes.

  • GEOS-10833 GeoServerHomePage unresponsive against large catalogs

  • GEOS-10759 Welcome page unreachable with large / slow catalogue configuration

  • GEOS-10838 Speed up DefaultResourceAccessManager securityFilter implementation

  • GEOS-10834 Catalog.list might require a lot of time due to security filtering

  • GEOS-10847 Selecting a raster layer in home page shows incorrect services

  • GEOS-10861 Welcome blurb i18n not respecting language switch

Community Modules

OGC API updates:

  • GEOS-10860 OGC API should return version including minor and patch in HTTP Response Header

  • GEOS-10828 OGC API - Features - Plugin breaks core `/rest` API with JSON payloads

The JDBC Config module received several important fixes:

  • GEOS-10814 Update jdbc config to use consistent SQL formatting

  • GEOS-10813 jdbc config cache bug

  • GEOS-10829 JDBC Config missing some nested layer properties

  • GEOS-10842 Escape user inputs in SQL queries

Release notes


  • GEOS-10851 GWC S3 Blobstore Parameters Get Converted back to plain text after an application restart


  • GEOS-7506 shutdown.bat cannot run without JAVA_HOME set

  • GEOS-10689 OSHISystemInfoCollector holds non daemon threads, prevents clean shutdown of Tomcat

  • GEOS-10846 Enable auto-escaping for REST HTML templates


  • GEOS-10683 FileWrapperResourceTheoryTest fails on Windows since Java 11

  • GEOS-10848 Column remarks documentation should be updated to reflect that functionality is supported with JNDI

For complete information see 2.22.2 release notes.

About GeoServer 2.22

Additional information on GeoServer 2.22 series:

Release notes: ( 2.22.2 | 2.22.1 | 2.22.0 | 2.22-RC | 2.22-M0 )

by Jody Garnett at February 20, 2023 12:00 AM

GeoServer 2.21.4 release is now available with downloads (bin, war, windows), along with docs and extensions.

This is a maintenance release of the GeoServer 2.21.x series, made in conjunction with GeoTools 27.4 and GeoWebCache 1.21.4.

Thanks to Jody Garnett (GeoCat) for making this release.

Security Considerations

This release addresses a security vulnerability and is considered an essential upgrade for production systems:

For more information see OGC Filter Injection Vulnerability Statement.

Community Modules

The JDBC Config module received several important fixes:

  • GEOS-10814 Update jdbc config to use consistent SQL formatting

  • GEOS-10813 jdbc config cache bug

  • GEOS-10829 JDBC Config missing some nested layer properties

  • GEOS-10842 JDBCConfig: escape user inputs in SQL queries

Release notes


  • GEOS-7506 shutdown.bat cannot run without JAVA_HOME set

  • GEOS-10683 FileWrapperResourceTheoryTest fails on Windows since Java 11

  • GEOS-10689 OSHISystemInfoCollector holds non daemon threads, prevents clean shutdown of Tomcat

  • GEOS-10807 LayerGroup with nested group POST rest op fails with null styles attribute

  • GEOS-10817 Features Templating - XML HTML output doesn’t escape all html and xml symbols

  • GEOS-10818 Schemaless Property Accessor returns emptylist instead of null for null/not existing properties

  • GEOS-10846 Enable auto-escaping for REST HTML templates


  • GEOS-10816 OGC API Features complex features test fails since introduction of tag in HTML templates

  • GEOS-10848 Column remarks documentation should be updated to reflect that functionality is supported with JNDI

  • GEOS-10851 GWC S3 Blobstore Parameters Get Converted back to plain text after an application restart

For complete information see 2.21.4 release notes.

About GeoServer 2.21

Additional information on GeoServer 2.21 series:

Release notes: ( 2.21.4 | 2.21.3 | 2.21.2 | 2.21.1 | 2.21.0 | 2.21-RC )

by Jody Garnett at February 20, 2023 12:00 AM

GeoServer 2.20.7 release is available with downloads (bin, war, windows), along with docs and extensions.

This series has previously reached end-of-life, with release being issued to address a urdent security vulnerability. Please apply this upgrade as a mitigation measure only. Upgrade to 2.22.x series for community support.

Thanks to Andrea Aime (GeoSolutions) for making this update available on behalf of the GeoNode project.

This release was made in conjunction with GeoTools 26.7.

Security Considerations

This release addresses a security vulnerability and is considered an essential upgrade for production systems:

For more information see OGC Filter Injection Vulnerability Statement.

Improvements and Fixes

For the full list of fixes and improvements, see 2.20.7 release notes.

About GeoServer 2.20

Additional information on GeoServer 2.20 series:

Release notes: ( 2.20.7 | 2.20.6 | 2.20.5 | 2.20.4 | 2.20.3 | 2.20.2 | 2.20.1 | 2.20.0 | 2.20-RC )

by Andrea Aime at February 20, 2023 12:00 AM