Changelog for QGIS 3.24

image1

Release date: 2022-02-18

In Memorium:このリリースは、2021年5月に亡くなったHåvardTveiteのお気に入りの訪問場所であった小さなノルウェーの島にちなんで「Tisler」と名付けられました。HåvardはQGISコミュニティの非常に活発なメンバーであり、ドキュメントに貴重な情報を提供し、開発しました多数のプラグイン、そしてQGISリソース共有リポジトリの世話をして彼の貢献のほんの一部を挙げています。 QGIS 3.24スプラッシュ画面の地図は、Håvardが作成したオリエンテーリングマップです。彼は毎年Tislerで地図作成に時間を費やすのが好きでした。

また、開発者、ドキュメンター、テスター、そしてこれらのリリースを可能にするために時間と労力をボランティアで提供してくれた(またはそうするために人々に資金を提供してくれた)多くの人々に心から感謝します。 QGISコミュニティから、このリリースを楽しんでいただければ幸いです。時間やお金を寄付したり、QGISをもっと素晴らしいものにすることに参加したい場合は、 QGIS.ORG に行って手を貸してください!

For a whirlwind tour of all the new functionalities introduced, you can view the highlight reel video on youtube at https://youtu.be/gVgR4Oxqtkk

QGISは寄付者と維持会員によってサポートされています。プロジェクトへの大小の献金を行った寄付者の現在のリストは、 寄付者リスト に掲載されています。公式のプロジェクト維持会員になりたい場合は、 維持会員ページ に行って詳細をご覧ください。QGISに出資いただけると、定期的な開発者会議への資金提供、プロジェクトインフラストラクチャの維持、バグ修正作業への資金提供に役立ちます。現在のスポンサーの完全なリストを以下に示します。すべてのスポンサーに大変感謝します。

QGIS はフリーのソフトウェアです。利用する上で金銭を支払う義務はありません。実際、私たちは利用者の財政状況や社会的地位にかかわらず、より多くの人に QGIS を利用して欲しいと思っています。私たちは地理空間的な意思決定ツールによって人々が力を持つことが、全人類の社会をより良くすると信じています。

ユーザーインターフェース

Feature: Retrieve map extents directly from layout maps and bookmarks

This is a handy time-saver! The extent widget in QGIS now allows you to directly retrieve and match the extent of maps from bookmarks and layouts in your project.

image3

This feature was developed by Mathieu Pellerin

Feature: Easier creation of custom coordinate reference systems

座標参照系(CRS)を選択するときに、最初にこれらのカスタムCRSを投影法データベースに特別に追加する必要がなく、(projまたはWKT文字列から)カスタムCRS定義を直接入力できる新しいオプションを追加しました。

It's much friendlier when you just want to define a custom projection for a single-purpose use, e.g. an overview map with a projection designed for a particular latitude and longitude location.

image4

This feature was developed by Nyall Dawson

シンボロジ

Feature: Marker/hash line: offsets along line by "percent" of line length (and negative offsets!)

You can now specify the offset along line in percentage for both marker and hash line symbol layer types. (These offsets are treated as percentages of the overall line length).

さらに、マーカーまたはハッシュラインシンボルレイヤーの オフセットに沿った 設定が 閉じた リングのサイズよりも長い場合、QGISはオフセットをリングの周りをループし続けるものとして扱うようになりました。たとえば、オフセットを150%に設定すると、オフセットは閉じたリングの長さの50%として扱われます。

Lastly, we also made it possible to specify a negative offset along line for a closed ring. Negative offsets are calculated backwards along the ring.

image5

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Control whether first/last vertex placements apply to every part of multi-part geometries

マーカーとハッシュラインのシンボルタイプのこの新しいシンボルオプションを使用すると、最初と最後の頂点配置オプションをマルチパートライン(またはポリゴン)のすべての部分に個別に適用するか、マルチパートジオメトリ全体中の最初と最後の頂点だけに適用するかを制御できます。

image6

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Marker/hash line "on vertices" placement option replaced by "on inner vertices"

The new On Inner Vertices mode places the symbols on all inner vertices only (i.e. all vertices except the first or last vertex).

以前の「頂点」モードでは、最初と最後の頂点、およびすべての内側の頂点にシンボルが配置されていたため、最初または最後の頂点に 異なる マーカーが付いた線を残りの頂点とスタイル設定することは基本的に不可能でした。ラインの頂点。新しい 内部頂点上 オプションを使用すると、最初または最後の頂点と残りの頂点で線のマーカーが異なるスタイルを簡単に作成できます。

(This change is paired nicely with the switch to using checkboxes for the placement options -- to get a marker to show on all vertices, just make sure the first, last and inner vertices options are checked).

image7

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Placement options in marker and hash line symbol layers are now checkboxes instead of mutually exclusive buttons

This improvement makes it considerably easier to create marker (or hash) lines with the markers on both the first and last vertex (amongst other useful combinations!)

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Control the color model used when interpolating gradient ramps

グラデーションランプをレンダリングする場合、補間が赤/緑/青のチャネルを個別に使用して実行されると、グラデーションの色のいくつかの組み合わせにより、ランプが暗い灰色の中間調を通過します。別のアプローチは、代わりに、色相/彩度/明度または値チャネルを介して色を補間することです。このアプローチにより、これらの彩度の低いミッドトーンを回避でき、視覚的に心地よいグラデーションが得られます。

マルチストップカラーグラデーションでストップごとに色指定を設定できるようになり、ユーザーはどの補間手法を使用するかを制御できるようになりました。 HSL / HSVカラースペック補間の色相コンポーネントに対して補間が従うべき方向を制御するオプションもあります。これは、状況によっては、虹色相スペクトル全体での不要な補間を回避するのに役立ちます。

This video shows the difference in mid-tones of a color ramp, where the RGB interpolation results in murky colors, while the HSL/HSV interpolation remains nice and vibrant.

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Resizable thumbnails in the style manager dialog

We've added a new slider to control the size of thumbnails shown in the style manager dialog, because sometimes these thumbnail sizes are just too small to get a good representation of a symbol!

image8

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: "Lineburst" symbols

We've added a brand new "Lineburst" symbol layer type, which renders a gradient along the width of a line (as opposed to the Interpolated Line renderer, which renders a gradient along the length of a line). It's just like the Shapeburst fill symbol type, but for lines!

image9

This feature was funded by North Road, thanks to SLYR!

This feature was developed by Nyall Dawson

Feature: "Raster Line" symbols

このまったく新しいラインシンボルタイプをお届けできることを大変うれしく思います。これにより、ライン図形の形状に従ってラスタ画像をレンダリングできます。このシンボルタイプは、QGISシンボルの可能性のまったく新しい領域を開き、手描きまたはペイントされたスタイルで地図を作成するときに特に役立ちます。

Options are available to control:

  • the picture path (including data defined path)

  • line width

  • opacity

  • line join and cap styles

image10

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Choice of clipping behaviour for line pattern fills

You can now control how lines in a line pattern fill symbol are clipped to polygon shapes. The available options include:

  • レンダリング中のみクリップ :地物の 境界ボックス 全体をカバーする線が作成され、描画中にクリップされます。線の端(開始と終了)は表示されません(これは古いQGISリリースと同じ動作です)。

  • Clip Lines Before Render: lines are clipped to the exact shape of the polygon prior to rendering. The line extremities (including cap styles, start/end marker line symbols, etc) will be visible, and may sometimes extend outside of the polygon (depending on the line symbol settings).

  • No Clipping: no clipping at all is done - the lines will cover the whole bounding box of the feature

image11

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Improved rendering of line pattern fills

ベクタ形式(PDFやSVGなど)にエクスポートする場合、または行のサブシンボルに動的(データ定義)プロパティがある場合、塗りつぶしをレンダリングするために行ごとのアプローチに自動的に切り替えるようになりました。 (以前は、タイルパターンのアプローチが常に使用されていたため、パターンに望ましくないアーティファクトや目に見える継ぎ目が生じることがよくありました)。

Some of the many benefits of this change include:

  • Smaller PDF/SVG output file sizes -- the line pattern fills aren't stored as raster images in the output so the overall file size will often be much smaller

  • PDF/SVG exported files are easier to modify in external applications (such as Inkscape or Adobe Illustrator) for post production, as each individual line in the pattern can be modified.

  • Better quality PDF/SVG outputs, since the fill isn't DPI dependent and looks pixel perfect regardless of how far in you zoom

  • No visible artifacts at certain angles, distances or with certain line symbol styles

And even more excitingly, it opens the door for a range of new symbol styles, for example:

  • line patterns where the individual lines change color/width/dash/ etc.

  • line patterns with marker line symbols on center point/etc

  • geometry generator effects per line, e.g. wavy line patterns, hand drawn line styles, etc

image12

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Rotation angle for point pattern fills

Now you can specify an optional rotation angle for point pattern fills, which causes the entire point pattern to be angled. This can be extremely useful when overlaying multiple point pattern fills!

image13

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Randomized point offsets for point pattern fills

この(オプションの)設定により、ポイントパターンの塗りつぶしの各ポイントを、xまたはy方向に指定された最大距離までランダムにシフトできます。最大オフセットは、ミリメートル、ポイント、地図単位、または「パーセンテージ」単位で指定できます(パーセンテージはパターンの幅または高さを基準にしています)。

You can set an optional random number seed to avoid the symbol patterns "jumping" around between map refreshes. Data defined overrides are also supported.

この新しい設定と既存の ランダムマーカー塗りつぶし シンボルタイプの主な違いは、ポイントパターンのランダムオフセットにより、マーカーの準「通常の」配置が可能になることです。これは、パターン内のポイントが効果的にグリッドに拘束されるためです。 、これにより、空の領域や重複するマーカーのないセミランダムな塗りつぶしを作成できます。 (常に完全にランダムにポイントを配置するランダムマーカーフィルとは対照的に...ポイントの視覚的なクラスターまたは不要な空の領域が生じる場合があります)。

image14

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Coordinate reference mode setting for line pattern and point pattern fill symbol layers

Line pattern and point pattern fill symbol layers have a new coordinate reference mode setting to tweak the anchoring of the patterns. Practically speaking, this allows for patterns to nicely align across adjacent and overlapping features.

relief

image16

This feature was developed by Mathieu Pellerin

Feature: Control marker clipping for point pattern fills

This new option gives you control over how markers are clipped in a point pattern fill. The available options include:

  • Clip to shape: markers will be clipped by the boundary of the shape, so "cut off" markers may be visible (same behaviour as previous QGIS versions)

  • Marker centroid within shape: markers will be drawn only if their centroid falls within the shape, and markers will not be clipped to the shape boundary

  • Marker Completely Within Shape: markers will only be drawn if they fit completely within the shape

  • No clipping: whole marker symbols will be drawn if any part of the marker falls within the shape

image17

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Expression functions for creating triangular/square/curved waves

We've added some new expression functions which produce "wavy lines" along geometry boundaries. Multiple wave shapes are available, including:

  • Wave (sine-like)

  • Triangular

  • Square

In addition, expressions functions have also been added for creating waves in a regular fashion or with randomization.

When used with geometry generators, these expressions can be used for some very advanced cartographic effects!

image18

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

ラベリング

Feature: "Percentage" units for text buffer size, shadow offset and blur radius

テキストバッファ、シャドウオフセット、シャドウブラー半径のサイズをフォントサイズのパーセンテージとして設定できるようになりました。これは、テキストサイズが変更されたときに個別に調整する必要がある固定のバッファ/シャドウサイズではなく、テキストサイズの変更に応じてコンポーネントが適切にスケーリングされるテキスト形式を作成できるため、望ましい方法です。

image19

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Data defined label positions by point geometries

これで、データで定義されたラベルの配置を、ポイントジオメトリフィールドまたは式にバインドするように設定できます。 (以前のQGISバージョンでは、2つの別々の数値のxフィールドとyフィールドを介してデータ定義の配置のみを設定できました)。

この変更により、 ラベルの移動 ツールを使用して、ポイントジオメトリフィールドにバインドされているラベルの位置を変更し、新しいラベルの位置をその属性にポイントジオメトリとして保存することもできます。

image20

This feature was funded by Swiss QGIS user group

This feature was developed by Damiano Lombardi

Feature: Stretched text for labels and text formats

この改善により、テキストをパーセンテージ係数で水平方向に拡大または縮小できます。フォントの幅を微調整して、ラベルに少し余分なテキストを収めるのに便利なことがよくあります(控えめに使用すると、フォントのストレッチを悪用して恐ろしい結果を招く可能性があります)。

Note: This improvement requires Qt 6.3+ or KDE's 5.15 fork. (On other builds the stretch options are hidden and can't be set)

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

レンダリング

Feature: Rendering layers as groups

This is another exciting cartographic enhancement which opens up a whole new arena of symbology and map visualisation in QGIS!

この改善の前は、QGISはプロジェクトを構造化する手段としてレイヤツリー内のレイヤのグループ化をサポートしていましたが、これらのグループはコンポーネントレイヤのレンダリング方法に影響を与えませんでした。 QGIS 3.24では、これらのレイヤーグループを「 グループとしてレンダリング 」できる新しいオプションを導入しました。これにより、地図のレンダリング中にすべてのコンポーネントレイヤが単一のフラット化されたオブジェクトとしてレンダリングされます。

このオプションは、グループレイヤーが選択されている場合は常に、レイヤースタイリングドック内で使用できます。このパネルでは、グループ全体の不透明度、ブレンドモード、レイヤー効果のオプションを使用して、グループ全体の外観を制御することもできます。

さらに、新しい グループとしてレンダリング オプションがアクティブになっているグループにレイヤーが含まれている場合、レンダリング中に「クリッピング」スタイルの操作を実行する新しいブレンドモードが利用可能になります。これらを使用すると、1つのレイヤーのコンテンツのレンダリングを、2番目の「マスク」レイヤーのコンテンツでクリッピングするなど、非常に強力な結果を得ることができます。

image21

This feature was funded by Andrew Fletcher.

This feature was developed by Nyall Dawson

Feature: Support for "Line pattern" when converting Mapbox GL vector tile layer styles

Making use of the brand new raster line symbol layer, QGIS 3.24 now properly renders Mapbox GL line pattern styling for newly-added vector tile layers.

image22

This feature was developed by Mathieu Pellerin

Feature: Support background styles for Mapbox GL-styled vector tile layers

We now correctly render any predefined background styling present in Mapbox GL-styled vector tile layers. This dramatically improves the appearance of vector tile layers with dark styles!

image23

This feature was developed by Mathieu Pellerin

三次元機能

Feature: Respect Z ordering when rendering point clouds in 2D

二次元地図ビューで点群をZ順序に従ってレンダリングするオプションを追加しました。新しい 下から上へ の順序付けオプションを有効にすると、Z値が大きい点が低い点を覆って、真の正射写真のように見えます。シーンが下から見たように表示される逆ソート( 上から下へ )のオプションもあります。

image24

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

This feature was developed by Stefanos Natsis (Lutra Consulting)

Feature: Dock/Undock 3D views

三次元地図にドックウィジェットを使用すると不便になる可能性があることは認識しております。多くの場合、サイズを調整すると再ドッキングする傾向があるため、サイズ変更や移動にイライラします。 QGIS 3.24では、三次元地図をドッキング可能なウィジェットからトップレベルウィンドウに(そしてドックウィジェットに戻す)切り替える機能が追加され、これらの地図ビューを標準のアプリケーションウィンドウと同じように管理、サイズ変更、移動できるようになりました。

image25

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

This feature was developed by Nedjima Belgacem (Lutra Consulting)

Feature: 3D map view manager

Previously, if you closed a 3D map view and then saved your project, the 3D map view and all its settings would be lost when you reopen that project. So in QGIS 3.24 we've added a "3D map view manager" that takes care of listing, removing, renaming and duplicating 3D map views in your projects!

We've also added a new "3D Map Views" menu, which contains all your created 3D map views for easy access!

image26

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

This feature was developed by Nedjima Belgacem (Lutra Consulting)

Feature: Improved camera navigation

The default navigation mode in earlier versions of QGIS would sometimes behave strangely when moving around, rotating or zooming in/out. A lot of effort went into improvements of the camera control, so since QGIS 3.24 the camera navigation's behavior should feel more natural and similar to other 3D mapping software.

For more details, see Fixing terrain and camera issues in 3D

This feature was funded by QGIS.org grant (2021)

This feature was developed by Nedjima Belgacem (Lutra Consulting)

計算式

Feature: geometry_type function

The new geometry_type function returns the high-level type of a geometry (i.e. 'Point', 'Line' or 'Polygon').

image28

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Overlay intersects sort by intersection size

We have added further enhancements to the overlay_intersects function. The change adds two new optional arguments to the existing function:

  • return_details: only valid when used with an expression, set this to true to return a list of maps containing (key names in quotes) the feature 'id', the expression 'result' and the 'overlap' value, the 'radius' of the maximum inscribed circle is also returned when the target layer is a polygon.

  • sort_by_intersection_size: only valid when used with an expression, set this to true to return the results ordered by the overlap value in descending order.

image29

This feature was funded by Kanton Solothurn, Amt für Geoinformation

This feature was developed by Alessandro Pasotti

Feature: Show all layer field names when building expressions

As a handy time-saver, we now make a list of all field names from all layers in your project available directly in the expression builder. If you double-click any of these field names, they'll be added to your expression as string values ('field_name').

image30

This feature was funded by ARPA Piemonte

This feature was developed by Alessandro Pasotti

Feature: represent_attributes function

This new function returns a map with all attribute (field) names as the keys and the configured representation values as values. The representation value for the attributes depends on the configured widget type for each attribute.

The function can be used with zero, one, or more arguments:

  • If called with no parameters, the function will return the representation of the attributes of the current feature in the current layer.

  • 地物だけを引数として関数を呼んだ場合、関数は現在のレイヤの指定された地物の代表値を返します。

  • レイヤと地物を引数として関数を呼んだ場合、関数は指定されたレイヤの指定された地物の属性の代表値を返します。

image31

This feature was funded by Kanton Solothurn

This feature was developed by Alessandro Pasotti

Feature: Optional minimum overlap area and circle radius for overlay_intersection

We have added two optional arguments to the overlay_intersection() expression function:

  • min_overlap: for polygons an optional minimum area in current feature squared units for the intersection (if the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has an area greater or equal to the value), for lines an optional minimum length in current feature units (if the intersection results in multiple lines the intersection will be returned if at least one of the lines has a length greater or equal to the value)

  • min_inscribed_circle_radius: for polygons only an optional minimum radius in current feature units for the maximum inscribed circle of the intersection (if the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has a radius for the maximum inscribed circle greater or equal to the value). Read more on the underlying GEOS predicate, as described in PostGIS ST_MaximumInscribedCircle function.

image32

This feature was funded by Kanton Solothurn

This feature was developed by Alessandro Pasotti

Feature: map_prefix_keys function

In QGIS 3.24 we've added a new map_prefix_keys function that takes a map and a prefix, the function returns a map with all keys prefixed by the prefix.

例:
map_prefix_keys(map('1','one','2','two'), 'prefix-')
返します:
{ 'prefix-1': 'one', 'prefix-2': 'two' }

image33

This feature was funded by Kanton Solothurn

This feature was developed by Alessandro Pasotti

Feature: densify_by_count and densify_by_distance functions

This functionality, which was previously only available through the Processing toolbox, is now available for use in expressions!

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Rotate parts of multi-part geometries independently with "rotate" expression function

The new "per_part" option for the "rotate" expression function allows you to rotate each part of a multi-part geometry around the center of each part (instead of the center of the geometry as a whole). This enhancement is designed to help out symbology when the rotate function is used as a cartographic tool as part of a geometry generator symbol layer.

image34

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: apply_dash_pattern function

This exciting new expression function applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line (or ring) using a dashed line pattern.

Rules can be set to control how the dash pattern is adjusted at line endings. If you specify a start rule or end rule, then the "adjustment" option defines whether both dash and gaps, or only dash or gap sizes are adjusted to apply these rules.

You can also set an optional pattern offset to specify how far along the pattern the result should start at.

image35

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: scale function

This new expression function allows you to scale (resize) a geometry. Just like the 'rotate' function, the function accepts an optional point position to apply the scaling from. If no anchor point is not specified then scaling is done from the center of the geometry's bounding box.

image36

This feature was funded by North Road, thanks to SLYR

This feature was developed by Nyall Dawson

Feature: Filter by multiple attributes for get_feature function

We extended the get_feature function to allow multi-attribute filtering, by adding an option to pass an array of filter values to the input.

This feature was developed by Alex

データ管理

Feature: Multiedit support for relation editor

We've added a new multi edit mode for the relation editor, which allows the rapid addition of child features to multiple parent features. This improves efficiency for data management operations, such as the ability to select multiple trees and adding a maintenance item to all of them in one click.

image37

This feature was funded by QGIS Model Baker

This feature was developed by Damiano Lombardi, OPENGIS.ch

Metadata and Metasearch

Feature: Support for OGC API - Records in MetaSearch

We updated the MetaSearch tool to provide support for the OGC API - Records (OARec) standard. As part of the OGC API evolution, OGC API - Records is the successor to OGC:CSW (like OGC API - Features is to WFS, etc.).

The OGC API - Records standard is currently in development and the current timeline for a public RFC by OGC is Q1 2022. This we ask you to take note of the draft status of the specification so you are aware that the specification may change a bit more over the next few months. We still need to flesh out how actionable links are handled over the next few months (which should be a significant improvement compared to the CSW publish/find/bind workflow).

Adding this feature to QGIS is a huge win for easier search and will help both users and providers for the long term.

image38

This feature was developed by Tom Kralidis

フォームとウィジェット

Feature: Form submit actions with HTTP POST

In QGIS 3.24 we added two new HTTP POST actions, similar to the existing Open action which uses an HTTP GET request.

The two actions differ in the way the form data are encoded:

  1. application/x-www-form-urlencoded

  2. multipart/form-data

In both cases, data are passed to the action in a URL encoded URL.

A new function url_encode(<map>) is provided to convert a dictionary (a map) to the encoded format.

The response from the submitted URL is opened by delegating to the operating system QDesktopServices::openUrl() after the payload has been stored in a temporary file.

image39

This feature was funded by Kanton Solothurn

This feature was developed by Alessandro Pasotti

Feature: New button to open attribute table on filtered features

We've added a new button to the attribute form (when in search mode) which enables you to open an attribute table filtered to only show the matching features.

image40

This feature was funded by ARPA Piemonte

This feature was developed by Alessandro Pasotti

分析ツール

Feature: Add roundness method to curve polygon

We added a "roundness" method to QgsCurvePolygon, allowing the calculation of the "roundness" of an area feature based on the formula Roundness = (4 * pi * Area) / Perimeter^2.

This includes the addition of a new expression and a processing tool for calculating roundness. The processing tool creates a new layer with the roundness of each feature in a new field.

image41

This feature was developed by Antoine Facchini

プロセシング

Feature: Extract labels algorithm

For 3.24 we added a new tool to QGIS' processing toolbox: "Extract labels". As its name hints at, this algorithm extracts label information from a rendered map at a specific extent and scale.

Extracted label information include its position (as point geometries), the associated layer name and feature ID, as well as label appearance properties such as rotation, text, alignment, font family, size, weight, etc.

このアルゴリズムは、出力レイヤーのデフォルトのシンボルなしのラベル付きスタイルも生成します。これにより、保存されたレイヤーをプロジェクトにドラッグアンドドロップして、エクスポートされたとおりにラベルを描画できます。

If a map theme is specified when extracting labels, the exported labels will match the visibility and symbology of that theme. If left blank, the project's current visible layers will be used.

image42

This feature was funded by TEKSI

This feature was developed by Mathieu Pellerin

Feature: Optional output extent parameter for the GDAL Raster Calculator algorithm

GDAL 3.3以降に対して実行する場合、QGIS処理ツールボックスのGDALラスター計算アルゴリズムでオプションの「出力範囲」パラメーターを指定できるようになりました。これは、大規模なデータセットを操作する場合に非常に役立ちます。多くの場合、計算機アルゴリズムを実行する前に、中間のクリップされたラスターを作成する必要がありません。

image43

This feature was developed by Mathieu Pellerin

Feature: Optional extent parameter for the GDAL clip raster by mask algorithm

We added an optional extent parameter to the GDAL "clip raster by mask" algorithm, which can come in handy when working with large raster datasets.

image44

This feature was developed by Mathieu Pellerin

Feature: Processing history rework

QGIS 3.24 includes a partial implementation of the framework described in QEP 130, and ports the Processing history log over to this framework.

これは、実行されたツールに関する無制限の追加情報(すべての入力パラメーター、出力結果、および全文ログも含む)を保存できるため、処理履歴を保存するためのはるかに柔軟なアプローチです。履歴ログは、以前に使用されていたテキストファイルではなく、sqliteデータベースに保存されるようになりました。これにより、より効率的なストレージ/取得/フィルタリングが可能になります。

The new framework potentially extends to more than just Processing - it could also be used to store the history of other user operations, such as project edits, layout exports etc!

We'll be using this framework in future to further extend the Processing history dialog. For 3.24, we're using it to expose a number of helpful additions to the history dialog:

  • Right clicking an entry in the log has a new option to copy the execution parameters as a "qgis_process" command line equivalent, giving you a super-easy way to generate qgis_process commands for execution in a CLI.

  • Right clicking an entry also shows a new "Copy as JSON" option, which copies a JSON string of the input parameters and algorithm settings

image45

This feature was funded by the Research Institute for Nature and Forest, Flemish Govt

This feature was developed by Nyall Dawson

Feature: Advanced actions in Processing dialogs

We have added new actions on the processing dialog including copy as qgis_process command, and copy/paste as JSON. Together these actions:

  • Allows for easy copying of the equivalent PyQGIS command to run the tool using the parameters defined in the dialog

  • Allow for easy generation of qgis_process commands via the QGIS GUI, including any tricky parameter values like GeoPackage outputs with specific layers

  • Provide a way for you to copy the settings defined in the dialog in a text format, so that you can store these easily and then restore them later by pasting the values.

  • Provides an easy way for you to copy the settings into the JSON format consumed by qgis_process, so that it is easy to see the expected format even for complex parameters (like TIN interpolation parameters).

image46

This feature was funded by the Research Institute for Nature and Forest, Flemish Govt

This feature was developed by Nyall Dawson

Feature: Single file exports from Atlas to PDF algorithm

You can now export an atlas layout to a single (collated) PDF file using the "Export atlas layout as PDF" processing algorithm.

image47

This feature was developed by Nyall Dawson

Feature: Project Models are shown in the Project menu

We added a new submenu to the "Project" menu, which will list any Processing models stored within the current project. This gives you a quick way to launch these project-specific models, in either a single or batch mode!

image48

This feature was funded by Kanton Solothurn

This feature was developed by Alessandro Pasotti

Feature: Add point cloud destination parameter and output to Processing

We have extended and improved point cloud support in Processing, namely by:

  • Fixing the filtering of point cloud layers in QgsProcessingMapLayerComboBox-based widget used for parameters

  • Adding a destination point cloud parameter type and point cloud output types with corresponding widgets. (Currently these are useful for 3rd party providers and plugins which create point cloud outputs.)

  • Exposing the newly added point cloud output and destination parameters to the algfactory wrapper

This feature was developed by Alexander Bruy

Feature: Array field support

In QGIS 3.24, we've made array field types first-class citizen in the Processing toolbox! The following algorithms have all been updated to support array fields:

  • Refactor algorithm;

  • Aggregate algorithm;

  • Add field to attributes table algorithm;

  • Field calculator algorithm; and

  • Advanced (i.e. python) field calculator algorithm

This feature was funded by SwissTierras Colombia

This feature was developed by Mathieu Pellerin

アプリケーションとプロジェクトのオプション

Feature: qgis_process --no-python argument

This new, optional command line parameter for the qgis_process command-line tool allows you to skip launching Processing with Python support when it is not required. This can result in a significant improvement in qgis_process startup times!

この機能は North Road の資金提供によって開発されました。

This feature was developed by Nyall Dawson

Feature: Suppress "bad layers" handler on startup

We've added support for a new command line flag for the qgis executable, which allows you to disable the default dialog which shows when opening a project with missing/broken layers:

[--skipbadlayers]       don't prompt for missing layers

example invocation:

./qgis --skipbadlayers
または

./qgis -B

このユースケースは、自動化やその他の起動後のプロセスが発生し、プロジェクトに不良レイヤーが存在する場合に起動プロセスを中断したくない場合があります。起動後、QGISは欠落しているレイヤーを無視しますが、レイヤーリストでは壊れているという印が付きます。

This feature was suggested by Giuseppe Baiamonte during, and live coded on, the QGIS Open Day, 17 Dec 2021.

image49

This feature was developed by Tim Sutton

Feature: Parameter values for qgis_process can be specified as a JSON object via stdin

We now provide a mechanism to support complex input parameters for algorithms when running the qgis_process command line tool.

To indicate that parameters will be specified via stdin then the qgis_process command must follow the format

qgis_process run algid -

(with a trailing - in place of the usual arguments list).

The JSON object must contain an "inputs" key, which is a map of the input parameter values.

echo "{"inputs": {\"INPUT\": \"my_shape.shp\", DISTANCE: 5}}" | qgis_process run native:buffer -

Additionally, extra settings like the distance units, area units, ellipsoid and project path can be included in this JSON object:

{
    'ellipsoid': 'EPSG:7019',
    'distance_units': 'feet',
    'area_units': 'ha',
    'project_path': 'c:/temp/my_project.qgs'
    'inputs': {'DISTANCE': 5, ..... }
}

(Specifying input parameters via stdin implies automatically the --json output format for results.)

One big motivation behind this enhancement is to provide a way for the qgis_process R libraries to support parameter types such as aggregates!

This feature was funded by the Research Institute for Nature and Forest, Flemish Govt

This feature was developed by Nyall Dawson

Feature: Run Python script algorithms directly via qgis_process

The qgis_process command-line tool now supports running a Python script algorithm directly by specifying the path to the .py file, in place of an algorithm ID or model file path!

This feature was developed by Nyall Dawson

データプロバイダ

Feature: Friendlier errors from XYZ raster tiles, WMS and vector tiles

XYZ、ベクタータイル、またはWMSネットワークリクエスト中に発生するサーバーエラーは、メッセージバーを介してQGISウィンドウに直接表示されるようになりました。可能な限り元の応答エラーテキストを含めることで、これらのエラーメッセージをよりわかりやすく役立つものにしました。

image50

This feature was funded by MapTiler

This feature was developed by Lutra Consulting (Vincent Cloarec)

Feature: Add out-of-the-box connection to Mapzen Global Terrain tiles

QGISでは現在、WMS/XYZレイヤー用のTerrariumDEMフォーマットの組み込みサポートを備えています。さらに、AWSでホストされているMapzen GlobalTerrainTilesをすぐに追加できるようになりました。新しいMapZenオプションは、ブラウザパネルのXYZセクションにあります。ユーザーは、プロジェクト用にすぐにアクセスできるグローバルDEMソースを利用できるようになりました。 https://registry.opendata.aws/terrain-tiles/ も参照してください

image51

This feature was developed by Nyall Dawson

Feature: HMAC SHA256 auth method for MapTiler

We've added a new authentication method specific for MapTiler which allows you to use a token encrypted with HMAC-SHA256.

image52

This feature was funded by MapTiler

This feature was developed by Lutra Consulting (Vincent Cloarec)

Feature: Template parameter {usage} for XYZ raster and vector tiles

For XYZ tile-based raster layers and for vector tile layers, we now allow the possibility to insert {usage} template parameters (in addition to {x}, {y}, {z}). If present, this parameter will be replaced by the context in which the request is being made.

The possible context values are:

  • view - when the request comes from 2D or 3D map canvas

  • export - when the request comes from exporting a layer or exporting a print layout for high-quality output (map previews in print layout designer are classed as “view”)

  • unknown - when coming from some other context, but the source is unknown

This functionality is useful for MapTiler clients, where they need to recognize the context in which tiles are used in order to bill users accordingly.

This feature was funded by MapTiler

This feature was developed by Lutra Consulting (Vincent Cloarec)

Feature: Convert WMTS/XYZ raster tiles to terrain (DEM)

In QGIS 3.24 we've introduced the possibility to convert WMTS/XYZ raster datasets to a raster layer of single band float type following a predefined encoding scheme.

You can activate this option and choose an encoding scheme (for now, "MapTiler Terrain RGB" or "Terrarium Terrain RGB" are available) in the source settings of the XYZ connection or in the Data Source Manager when adding a WMST layer.

選択したコンバーターは、R​​GBソース値を各ピクセルのフロート値に変換します。ロード後、レイヤーはシングルバンド浮動小数点ラスターレイヤーとして表示され、疑似カラーまたはヒルシェードレンダラーを使用してスタイリングできるようになります。

image53

This feature was funded by MapTiler

This feature was developed by Lutra Consulting (Vincent Cloarec)

Feature: Array field types for scratch layers

You can now add array field types directly to newly created scratch layers. (While array field types have previously been supported by scratch layers, there was no way for users to add them when creating a new scratch layer.)

image54

This feature was developed by Mathieu Pellerin

Feature: JSON field types for new GeoPackage layers

We've added support for creating JSON fields directly to newly created GeoPackage layers. (While JSON field types have previously been supported by GeoPackage layers, there was no way for users to add them when creating a new layer.)

image55

This feature was developed by Mathieu Pellerin

Feature: Delimited text type overrides and other improvements

We've given some love to the delimited text data provider in 3.24, with several enhancements which include:

Boolean type support and automatic detection

Boolean data types are now first-class citizens, which are automatically recognized when all records in a column contain one of the following values (case insensitive):

  • t/f

  • true/false

  • yes/no

  • 0/1

Boolean fields are also detected from a CSVT file, a GDAL/GeoCSV format e.g.

Integer(Boolean)

You can also add custom string representations for TRUE/FALSE (for example a localized "yes"/"no" value).

Column type override

Column types are automatically determined (by an initial limited scan of the file for immediate feedback followed by a full scan of the file which happens in a separate thread to not block the GUI and is user-interruptible), the types are exposed to the GUI as combo boxes and the user can override the automatically determined types.

Enhanced CSVT support.

CoordX, CoordY, Point(X/Y), WKT are now recognized as specified in https://giswiki.hsr.ch/GeoCSV

image56

This feature was funded by Stadt Freiburg im Breisgau

This feature was developed by Alessandro Pasotti

Feature: New authentication method for HTTP header based authentication

A new authentication method is available for network requests which that supports user defined HTTP header authentication. Multiple custom headers can be included in these requests.

This is useful in various scenarios, such as when a WMS requires an API key that is to be used in a HTTP header with the header key being X-API-KEY, which can now be included in requests from QGIS to authenticate against the WMS endpoint.

image57

This feature was developed by Tom C

Feature: Expose secondary PostGIS geometry columns as referenced geometries

As discussed in this issue, we have added support for exposing additional geometry columns from the Postgres provider as QgsReferencedGeometry. This allows more efficient interaction with additional geometry columns through the API. For example, in label placement, the additional geometry column can be used instead of the feature geometry. The fields will be represented as WKT [CRS User-Friendly Identifier] in the attribute table.

This can be used in expressions and in the label placement properties tab where you can link the label placement to the second geometry column using the Point property. In the case where you using it for labelling, the second geometry column will be updated automatically if you use the move tool and the columnt type is Geometry. If the column type is text, you could also use that as a second geometry by doing e.g.

geom_from_wkt("my wkt string field")

In this case however, the column will be read only.

So e.g. now in expressions if you have secondary geometry column you can do

buffer("my_second_geom_column", 10)

and it will work.

Warning: This changes the behavior of existing projects.

image58

This feature was funded by OPENGIS.ch

This feature was developed by Matthias Kuhn, OPENGIS.ch

QGISサーバー

Feature: Allow better control of the response flow chain from server filters

New filters allow control of the call chain by implementing new filter callbacks that allow returning a control value for stopping propagation. This allows for the better control of streamed data and response flow.

  • Deprecate bool QgsFilter::onRequestReady(), bool QgsFilter::onSendResponse(), bool QgsFilter::onResponseComplete()

  • Add new methods bool QgsFilter::onRequestReady(), bool QgsFilter::onSendResponse(), bool QgsFilter::onResponseComplete() which return boolean values for controlling data flow

  • Handle flow control in QgsFilterResponseDecorator::flush()

This feature was developed by David Marteau

注目すべき修正

Bug fixes by Alessandro Pasotti

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Wrong raster projection on HIDPI screens

#46882

PR #46931

TODO

Data Source Manager title not translatable

#46929

PR #46932

TODO

QGIS 3.22 - Identical map names in print composer

#46927

Works for me

Bold and italic attributes of labels that reinitialize

#46896

Works for me

NameError: name 'QGISAPP' is not defined when using stop_app()

#46883

Works for me on Linux/master, might be windows only

Virtual layer not loaded correctly after re-opening a project

#46834

PR #46938

TODO

QGIS crashes while calling readLayerXml()

#46741

Works for me

Crash when changing orientation of page in layout

#46575

PR #46972

TODO

"sort" funcionality of attributes table sort numeric fields as text

#34935

PR #47035

TODO

OAPIF: api-key not included when requesting /collections endpoint

#46535

PR #47145

TODO

XML notation if missing from tooltips in vector file writer dialog

#46508

PR #47148

TODO

Ignore out of range option in interpolated symbol renderer creates artifacts if start value is out of range

#46362

PR #47174

TODO

start width > end width is ignored when using the "exact" color interpolation method

#46371

PR #47195

TODO

QGIS Layouts: using "Data defined override" for HTML Source URL not working

#34395

works for me (closed - not a bug)

(Un)force hide form in relation widget

#47226

PR #47245

TODO

Oauth2 authentication protocol does not honors the defined port number in redirect URL in QGIS 3.22.1

#46354

works for me (left open)

HTML/String-ish QByteArray as result of expression function breaks expression preview display

#46174

PR #47229

TODO

Raster layer exported to GeoPackage with the character 'ß' in the name is not immediately loaded in the project

#45965

works for me (closed)

Layout Attribute Table sorting does not work in Print Layouts when column name has spaces

#43744

PR #47249

TODO

Incorrect scale range legend after applying logarithmic graduated symbology to a vector layer

#45454

PR #47259

Risky?

fix server crash

unreported

PR #47271

TODO

Load QGIS project from command line from a PostgreSQL project

#47270

PR #47272

TODO

Aggregate function with filter doesn't work in layout manager

#45552

Works for me (closed)

Value map widget: "value"/"description" inconsistency when table added to print layouts

#41798

PR #47300

TODO

Missing entries in attributetable in layout with atlas at page break

#44086

PR #47303

TODO

Server OAPIF: bbox filter isn't working if data source CRS is not EPSG:4326/WGS84

#47302

PR #47318

TODO

Drag & Drop designer control visibility by expression with field IS NOT NULL doesn't work if the field is configured with html

#47363

PR #47432

Risky?

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Alessandro Pasotti

Bug fixes by Sandro Santilli

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

DistanceWithin algorithm failing with PostgreSQL provider

#45352

PR #46971

PR #47076

GH_WORKSPACE -> QGIS_WORKSPACE

PR #47060

Improve documentation about running tests

PR #47057

Use variables to set postgresql connection config in authmanager test

PR #47059

Re-use possibly cached postgis_version from pgsql description method

PR #47393

PR #47401

Trust primary key of layers setup by DBManager TopoViewer plugin

#47389

PR #47390

PR #47403

Improved debugging output in QgsPostgresConn class

PR #47396

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Sandro Santilli

Bug fixes by Even Rouault

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

QGIS 3.21.0: preset transform required "nehpgn.gsb" but downloads "nehpgn.tif" which does not work

#45470

PR #46918

PR #46952

Raster layer misaligns when bbox bigger than projected raster layer

#34518

PR #46939

PR #46956

Filter for WFS layer: The "Tables" button is missing

#46887

Not a bug

Something simpler than SQL to filter a WFS layer

#46888

PR #47056

PR #47132

renaming/deleting columns takes a lot of time on large vectors

#47012

GDAL PR 5193

GDAL PR 5204

Opening a Vector Geopackage in QGIS alters its file even when no changes are done by user

#23991

PR #47098

PR #47301

MapInfo CRS not correctly recognized

GDAL issue #5217

PR #47149

PR #47157

Crash exporting dxf using "Symbol layer symbology"

#46245

PR #47277

PR #47297

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Even Rouault

Bug fixes by Denis Rouzaud

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Trying to add GPKG from data source manager crashes QGIS master

#46463

PR #46928

not relevant

Display name in layer properties is not automatically filled

#28353

PR #47016

Fixes to QgsGeometry::addPart + new test cases

unreported

PR #47009

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Denis Rouzaud

Bug fixes by Alex Bruy

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Layout picture: data-defined svg parameters should be disabled for incompatible pictures

#26524

PR #46976

TypeError in MetaSearch when adding WFS data

#46135

PR #46993

PR #47003

Split Vector Layer algorithm does not export both null and empty values

#38105

PR #46997

PR #47030

data source manager not opening with correct sub menu for point cloud datasources

#42881

PR #46998

PR #47002

SLD import doesn't recognize html enconding in ttf font references

#27263

PR #46975

PR #47040

Error opening data loader dialog from MetaSearch

#40490

Works for me

Display name in layer properties is not automatically filled

#28353

PR #46978

No way to add mbtiles file-based MVT package except drag and drop

#36449

PR #47028

PR #47068

"GDAL rasterize overwrite with attribute" does not refresh/reload output

#45729

PR #47055

PR #47105

Delete Column in Matrix Parameter in Graphic Modeler not Working

#45694

PR #47064

PR #47067

Wrong signature of the QgsProcessingParameterMeshDatasetGroups when exporting to Python

unreported

PR #47152

PR #47156

Error message when GRASS tools cannot be run is (now) wrong

#46052

PR #47163

"Ignore invalid input features" processing setting location is misleading

#42557

PR #47163

Inconsistent number of decimal places in Identify tool

#27929

PR #47173

qgis_process is not showing algorithm providers installed via a python plugin

#41120

PR #47258

PR #47263

Unable to delete files .shp and .dbf using python code (removeMapLayers, deleteShapeFile)

#39428

Works for me

QgsProcessingParameterFile extension option

#45633

Not a bug

Make the labels "edit rule" widget a real dialog with buttons

#36761

PR #47305

Edit form python editor tabs/spaces confusion

#46988

PR #47345

PR #47352

Error when making buffer from empty layer with 'Dissolve result' option checked

#46396

PR #47348

PR #47384

QGIS does not replace commas in layer names when exporting to DXF (so is incompatible with AutoCAD)

#47381

PR #47418

PR #47430

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Alex Bruy

Bug fixes by Paul Blottiere

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fixes WFS EXP_FILTER parsing in GetFeature request

mailing list

PR #47029

Too risky

Fix output filename when a raster is saved in a format without extension

unreported

PR #46992

TODO

WFS GetFeature document and exceptions

unreported

PR #47198

TODO

Exluding a print layout in project propteries -> server do not avoid that a GetPrint request can be done for that layout

#46140

PR #47199

TODO

Server: Can't enable WFS3 API update endpoint (PUT/PATCH) on layers without geometry

#46119

Works for me

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Pau Blottiere

Bug fixes by Matthias Kuhn

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fix HTTP Post with MultiPart

#46989

PR #47006

not needed

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Matthias Kuhn

Bug fixes by Nyall Dawson

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Add .tsv extension to delimited text supported files filter

reported on youtube screencast

PR #47181

pending

Fix line anchor placements are reversed for labels which sit below lines

unreported

PR #47181

PR #47181

Fix incorrect return code from QgsProcessingModelAlgorithm::fromFile when file does not exist

unreported

PR #47161

PR #47162

Fix many georeferencer regressions

multiple

unreported

pending

Avoid some unwanted "unhandled exception" message boxes which can pop up while moving the mouse

reported on youtube screencast

PR #47138

PR #47154

Don't use custom palette in crash handler dialog, this results in unreadable text on dark themes

#47065

PR #47110

PR #47136

Don't slightly colorise the icons for selected items in lists

#47065

PR #47133

not suitable

Fix python exception raised after running in-place algorithm which requires no parameters

reported on youtube screencast

PR #47108

PR #47130

Fix labelling shown for features out of range of temporal controller dates

#45160

PR #47119

PR #47126

Fix line dependent orientation rendering of curved labels

#45051

PR #47118

PR #47137

When processing is initialized in external scripts, ensure the GRASS, SAGA and OTB providers are included by default

#45935

PR #47114

PR #47121

Show descriptive error when label rotation tool cannot be used because of invalid expressions

#47091

PR #47112

not suitable

QgsRasterDataProvider.block() returns invalid QgsRasterBlock if requested block size exceeds a certain threshold

#47097

PR #47106

PR #47129

Fix missing icons for array field types

#47078

PR #47086

not suitable

Use correct approach to unset data defined field for label position when auxiliary column is removed

#46403

PR #47085

PR #47088

Fix atlas sorting with complex field names

#40332

PR #47083

PR #47103

improve field handling when converting to rule-based

#46459

PR #47081

PR #47104

Fix 'Save all Styles/Save current Style' only appears after close/reopen the layer properties window

#46596

PR #47080

not suitable

Fix readability of text when using dark themes

#47065

PR #47071

PR #47074

Fix sqlite errors on startup caused by default style database import logic

unreported

PR #47070

not suitable

Fix color widgets incorrectly change colors when mouse is hovered over widget

unreported

PR #47069

PR #47077

Avoid crs definition errors when closing options dialog

#47014

PR #47061

n/a

Fix duplicate shortcut registered warning on startup

unreported

PR #46983

not suitable

Fix scroll wheel events get "stuck" when scrolling to bottom of areas

unreported

PR #46958

PR #46987

Flag a lot of situations where ballpark transforms are appropriate so warnings are not shown

#45621

PR #46957

PR #46961

Fix crashes when saving layer styles

#46954

PR #46955

not suitable

Fix broken merge features tool

unreported

PR #46924

n/a

[mssql] Fix provider on case-sensitive database locales

#46907

PR #46923

PR #46949

[mssql] Fix inserting features when pk attribute name contains special chars

#42290

PR #46876

PR #46903

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Nyall Dawson

Bug fixes by Damiano Lombardi

Bug Title

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fix #47089 wrong rotation point for rotate label tool preview

#47089

PR #47124

These bugfixes were funded by QGIS.ORG (through donations and sustaining memberships)

Bugs fixed by Damiano Lombardi