RSS Entry of QGIS Project's latest versionhttps://changelog.qgis.org/en/qgis/version/2.16.0/2024-03-28T23:15:40.402952+00:00These are the entries from the latest version of QGIS project.fTools plugin has been replaced with Processing algorithmshttps://changelog.qgis.org/en/entry/469<p><p>fTools is a core plugin that for many years has provided the tools found in the <code>Vector</code>menu in QGIS. With the advent of the QGIS processing framework, the fTools began to represent a duplication of effort, and many of the tools have been improved in their Processing equivalents. To address, the fTools plugin has been removed from QGIS and equivalent menu entries have been added to the vector menu, pointing to the Processing framework tools that achieve the same thing.</p></p><p><img src="/media/images/entries/99f9e994013dd63cdbba44a765ae5b5a0595d533.png"/></p>Use of authentication manager in PostGIS related algorithmshttps://changelog.qgis.org/en/entry/555<p><p>PostGIS related algorithms now use QGIS authentication manager to get credentials for PostGIS database.</p>
<ul>
<li>In case and authentication method has been set on PostGIS connection, user will be asked for his master password.</li>
<li>In case no authentication method has been set on connection, credentials will be taken from credentials cache or, if not found there, asked to the user and stored in credentials cache for further use.</li>
</ul>
<p>With this, it is not longer necessary to store clear passwords in connection settings to use PostGIS related algorithms.</p></p><p><img src="/media/"/></p>Unit selection for outline widthhttps://changelog.qgis.org/en/entry/489<p><p>Outline width unit selection is now available. This allows for a map unit sized diagram that will grow and shrink based on map scale while maintaining a fixed millimeter outline width. </p></p><p><img src="/media/images/entries/932c792c43a94b8236ea803ae334c1a3d9f447ef.png"/></p>Top level widgets in drag and drop designerhttps://changelog.qgis.org/en/entry/544<p><p>It is now possible to put widgets directly on the form with the drag and drop designer.
A drag and drop designer form can therefore exist without any tabs on it.</p></p><p><img src="/media/images/entries/720df275d40a2d527f2492bde7db4dcdc94fc3da.png"/></p>Support for writing tables with no geometryhttps://changelog.qgis.org/en/entry/523<p><p>The OutputVector algorithm now supports writing geometryless tables.</p>
<p>For now, this has only been applied on Refactor Fields algorithm but could easily extended to other attributes related algorithms.</p></p><p><img src="/media/"/></p>Support for expressions and variableshttps://changelog.qgis.org/en/entry/551<p><p>Inputs and outputs in algorithm dialogs now support QGIS expressions and variables</p></p><p><img src="/media/"/></p>Support for GNSS GNRMC messageshttps://changelog.qgis.org/en/entry/470<p><p>QGIS can now handle GLONASS satellite data ($GN* lines) to get a more precise Position from external GPS/GNSS Receivers.</p></p><p><img src="/media/images/entries/9d13c0c632da1e70199f035ce5a186c018da2cef.png"/></p>Support for DB2 databaseshttps://changelog.qgis.org/en/entry/486<p></p><p><img src="/media/"/></p>Style Dockhttps://changelog.qgis.org/en/entry/494<p><p>The style dock is a new, far more efficient, way to manage layer styles in QGIS. It supports a live preview of style changes as they are made, full undo / redo support and a less distracted workflow as you prepare your map cartography. For a comprehensive overview of the style dock's features, please see <a href="https://nathanw.net/2016/06/25/improving-you-styling-with-the-qgis-style-dock-part-1/">style dock part 1</a> and <a href="https://nathanw.net/2016/06/29/qgis-style-dock-part-2-plugin-panels/">style dock part 2</a>.</p></p><p><img src="/media/images/entries/92389e4750d63c3842286fa43fe5ef2214f7c6dd.gif"/></p>Store spatial bookmarks in project fileshttps://changelog.qgis.org/en/entry/515<p><p>If you are creating a spatial bookmark, you can now choose to store the bookmark in your active project file. Scroll across in the bookmarks panel to find the checkbox that enables this capability.</p></p><p><img src="/media/images/entries/fe01b36ab39b8cc21e6ec875c4baadc890cf6519.png"/></p>Statistics for string and date fieldshttps://changelog.qgis.org/en/entry/514<p><p>The statistical summary dock can now calculate aggregate statistics for string and date fields.</p></p><p><img src="/media/images/entries/819559c98282bcf044fae47ddcc00908be3adf69.png"/></p>Show curve point radius in info toolhttps://changelog.qgis.org/en/entry/530<p><p>If you click on a curved line using the info tool, QGIS will now display the radius in the info tool.</p></p><p><img src="/media/images/entries/70f085e8494b3f65fd801b79fe6e15fe4ec7f012.png"/></p>Set point locations by clicking on canvashttps://changelog.qgis.org/en/entry/467<p><p>Processing parameters expecting a point location can now be set via clicking a location on the map canvas. Previously, coordinates had to be manually entered.</p></p><p><img src="/media/"/></p>Segmentation tolerancehttps://changelog.qgis.org/en/entry/525<p><p>Support was added to set the segmentation tolerance (maximum angle or maximum difference). This setting controls the way circular arcs are rendered. The smaller maximum angle (in degrees) or maximum difference (in map units), the more straight line segments will be used during rendering. You can find this option in <code>Settings -> Options -> Rendering -> Curve Segmentation</code>.</p></p><p><img src="/media/images/entries/c86e3cd9ebab19e1581568eb5804c69ba279787d.png"/></p>Save styles in MS SQL and Oracle databaseshttps://changelog.qgis.org/en/entry/539<p></p><p><img src="/media/"/></p>Rename fields in layershttps://changelog.qgis.org/en/entry/541<p><p>In QGIS 2.16 you can now rename fields in Postgres, Oracle, OGR and memory layers by double clicking the field name in the layer properties window.</p></p><p><img src="/media/"/></p>Relative links in composer labelshttps://changelog.qgis.org/en/entry/483<p><p>Now labels and HTML boxes can contain relative URLs. If we don't have a base URL, the project file will be used as a base URL.</p></p><p><img src="/media/images/entries/5efabc11a312d90df04591a62cbafbb85b0ffc4d.png"/></p>Relation reference widget: shortcut for adding new valueshttps://changelog.qgis.org/en/entry/560<p><p>The relation reference widget was enhanced to allow quicker extensions of related value lists. If the checkbox "Allow adding new features" is enabled in the widget properties (access through "Fields" tab in layer properties), a green plus button will appear to the right of the widget. After pressing the "Plus" button, the dialog of the related table will open in "new record" mode where one can add an additional entry.</p></p><p><img src="/media/images/entries/5788b370bc8535629699d8b69656335974ca6feb.png"/></p>Refreshed globe pluginhttps://changelog.qgis.org/en/entry/534<p><ul>
<li>Update to OsgEarth 2.8</li>
<li>Rewrite of QGIS globe tile driver</li>
<li>Rewrite of synchronization logic between 2D and 3D</li>
<li>Migration to new geometry kernel</li>
<li>Support for multiple background layers</li>
<li>Menus embedded in globe window</li>
<li>Independent layer selection for globe</li>
<li>Port of Mathias Kuhns master thesis work from QGIS 2.1/OsgEarth 2.4</li>
</ul></p><p><img src="/media/images/entries/f709cc02852b833f459f30431f38f868d69ebfad.jpg"/></p>Refresh Postgres materialized views in db managerhttps://changelog.qgis.org/en/entry/516<p></p><p><img src="/media/"/></p>Redlining support in GetMap and GetPrinthttps://changelog.qgis.org/en/entry/480<p></p><p><img src="/media/"/></p>Redesigned interactive gradient editorhttps://changelog.qgis.org/en/entry/512<p><p>The gradient ramp editor has been reworked with interactive controls for easier manipulation of gradients. The dialog now also includes an interactive plot for modifying gradient stops via the color HSV or RGB values. The new editor features:</p>
<ul>
<li>drag to move color stops</li>
<li>double clicking to add a new stop</li>
<li>pressing delete will remove the selected stop</li>
<li>pressing arrow keys will move the selected stop, and holding shift while pressing a cursor key results in a larger move</li>
<li>drag and drop a color onto the widget to add a new stop</li>
</ul></p><p><img src="/media/images/entries/dca557436392cf51e05a0c77fa915b5e94013d2c.gif"/></p>Quantile based classification for raster layershttps://changelog.qgis.org/en/entry/542<p><p>This option can be found for single band pseudocolor rasters in the classification <code>mode</code> dialog.</p></p><p><img src="/media/images/entries/844d12273c1d3d42e5f1b20367e92bc1144b77fe.png"/></p>QGIS Paid Bugfixing Programmehttps://changelog.qgis.org/en/entry/545<p><p>We did another round of paid bug fixing (thanks to our sponsors and donors!). Here follow the work summaries of the developers who participated:</p>
<h3>Nyall Dawson</h3>
<p>Here's the full list (sorted by priority):</p>
<ul>
<li>Fix broken projective transform in georeferencer (#14551 - severe)</li>
<li>Fix selecting features by radius fails (#14748 - severe)</li>
<li>Fix incorrect area calculation for polygon (#14675 - severe, although very unlikely to occur. Unit tests added to cover this edge case)</li>
<li>Fix dock widget layout (#15011 - severe)</li>
<li>Fix crash in arrow symbol layer (unreported)</li>
<li>
<p>Fix crash when creating invalid join (unreported)</p>
</li>
<li>
<p>Fix parameterised SVGs not shown for composer arrow items (#14997 - high)</p>
</li>
<li>Classifications on joined fields should only consider values which are matched to layer's features (#9051 - high)</li>
<li>Always use string comparison in expressions for string fields (#13204 - high)</li>
<li>Fix home dir being added as default svg and template path (#14662, #14652, #14883 - high)</li>
<li>
<p>Fix crash when using inverted polygons with heatmap renderer (#14968 - high)</p>
</li>
<li>
<p>Save raster symbology values with full precision (#14950 - normal)</p>
</li>
<li>Actions are not enabled when loading layer with default style (#13910 - normal)</li>
<li>Remove "attribute table" text from dialog title (#14959 - normal)</li>
<li>Fix cannot deactivate customization widget catcher (#9732 - normal)</li>
<li>Fix arrow symbol layer head width/height flipped (#15002 - normal)</li>
<li>Fix joins are not recreated when loading project with bad layers (#10500 - normal)</li>
<li>Invalidate join cache when layer is modified (#11140 - normal)</li>
<li>Correctly support joins using virtual fields (#14820 - normal)</li>
<li>Fix virtual fields which depend on other virtual fields may not be calculated in some circumstances (#14939 - normal)</li>
<li>Fix rule based labels not shown when using python expression functions (#14985 - normal)</li>
<li>Auto refresh when symbol levels changed in style dock (#14861 - normal)</li>
<li>Fix style dock button not synced to dock state (#14862 - normal)</li>
<li>Fix issues rendering SVG with text (#14644, #14794 - normal)</li>
<li>Ensure data defined button displayed fields are always up to date (#14809 - normal)</li>
<li>Fix cannot set shortcut for zoom in (#14958 - normal)</li>
<li>Fix inverted polygons and displacement renderer don't allow right click on legend items (#14966 - normal)</li>
<li>Fix inverted polygon & displacement renderer don't show colour wheel in legend menu (#14967 - normal)</li>
<li>
<p>Add missing proxies for legend check behaviour to sub renderers for inverted polygon and displacement renderers (unreported)</p>
</li>
<li>
<p>Fix joined attributes can't be used in filter expressions (#13176 - low)</p>
</li>
<li>Show WKB type in vector layer metadata (unreported)</li>
<li>Add missing capabilities strings to layer metadata (unreported)</li>
<li>Fix debug noise when using 25D geometry layers (unreported)</li>
<li>Fix some status bar widgets could not be hidden via customisation (unreported)</li>
<li>Make styling widget live apply remember setting (unreported)</li>
<li>Don't show constraint messages when form is in search mode (unreported)</li>
<li>Show scrollbars for attribute form as identify results (unreported)</li>
<li>Make style dock Apply button always enabled (unreported)</li>
<li>Fix some missing auto updates from style dock (unreported)</li>
</ul>
<p>I also forward ported a bunch of fixes from Sourcepole's fork.</p>
<h3>Even Rouault</h3>
<p>Here are the tickets I've dealt with during my allocated time for QGIS 2.16 bug fixing.</p>
<p><strong>Severe/High:</strong></p>
<ul>
<li>https://hub.qgis.org/issues/15006: Crashes in standalone browser</li>
<li>https://hub.qgis.org/issues/14876: WFS client broken in QGIS master</li>
<li>https://hub.qgis.org/issues/13762: Error accessing external WMS server -- WMS provider: Cannot calculate extent</li>
<li>https://hub.qgis.org/issues/14927: Attribute table sorting problem with qgis-rel-dev (2.14.X regression)</li>
<li>https://hub.qgis.org/issues/15064: QGIS crashes on OGR layers with wkbUnknown25D, wkbUnknownM/Z/ZM layer geometry type</li>
<li>https://hub.qgis.org/issues/14844: Oblique Mercator projection hanging when rendering map</li>
<li>https://hub.qgis.org/issues/15047: ASSERT failure in QVector<T>::at: "index out of range" in qgis_attributetabletest (TestQgsAttributeTable)</li>
<li>https://hub.qgis.org/issues/15087: Crash when deleting the last segment of a compoundcurve</li>
</ul>
<p><strong>Normal</strong></p>
<ul>
<li>https://hub.qgis.org/issues/14965: wfs provider copies features when zoomin in and out</li>
<li>https://hub.qgis.org/issues/14928: WMS request without BBOX</li>
<li>https://hub.qgis.org/issues/14999: Spatialite provider does not support alphanumeric primary keys (backport in 2.14)</li>
<li>http://hub.qgis.org/issues/15061: Cannot add WFS layer</li>
<li>https://hub.qgis.org/issues/15065: Failed detection of geometry type in some conditions</li>
<li>https://hub.qgis.org/issues/15066: OGR: Sublayers detected sometimes when not relevant (Polygon/CurvePolygon)</li>
<li>https://hub.qgis.org/issues/15067: DXF export creates invalid file</li>
<li>https://hub.qgis.org/issues/15081: Impossible to clear geometry of feature from a shapefile</li>
<li>unreported [Geometry] Fix various issues related to Wkb/Wkt import</li>
</ul>
<p><strong>Other:</strong></p>
<ul>
<li>https://hub.qgis.org/issues/14981: Import of Shapefile to Geopackage-Database in DB-Manager fails (analysis)</li>
<li>https://hub.qgis.org/issues/15011: Browser panel is unusable (bisection & analysis)</li>
<li>https://hub.qgis.org/issues/14909: regression: QGIS crashes when closing docked attribute table (analysis)</li>
<li>https://hub.qgis.org/issues/13353: QGIS and gdal 2.0.0 (closed: no further action needed)</li>
<li>https://hub.qgis.org/issues/15053: WMS with EPSG:31255 is shifted (datum=hermannskogel) (analysis. probably outdated proj.4 version)</li>
</ul>
<h3>Sandro Santilli</h3>
<ul>
<li>Overflow on primary key with negative values; cannot save edits http://hub.qgis.org/issues/14262</li>
<li>Deadlock from parallel rendering http://hub.qgis.org/issues/12228</li>
<li>Map Composer: group + move + ungroup + undo = crash http://hub.qgis.org/issues/11371</li>
<li>Repository files modified by "make check" http://hub.qgis.org/issues/14976</li>
<li>Different handling of invalid geometries between LTR and master version http://hub.qgis.org/issues/13635</li>
<li>QGIS node tool causes snapping another feature randomly http://hub.qgis.org/issues/13952</li>
</ul>
<h3>Martin Dobias</h3>
<ul>
<li>Digitizing: "Simplify Feature" should not open a dialog when no feature is clicked</li>
<li>Digitizing: how to abort "Simplify Feature" or "Rotate Feature" tool is not that obvious</li>
<li>One road missing upon Add Vector Layer!</li>
<li>Autotracing fails with Circular Arcs in geometries</li>
<li>WMS not working on master a625eeb (2.15.0-80)</li>
<li>Processing preconfigured algorithms python error</li>
<li>GPS don't record geometry point, but only attribute values...</li>
<li>style dock: transparency panel (global transparency, transparent pixel, etc.) not working for hillshade renderer</li>
<li>style dock: back button & breadcrumb missing when a rule-based label rule is being edited</li>
<li>Fix undo/redo for rule-based renderer/labeling in styling dock</li>
<li>Fix updates of undo widget in styling panel</li>
<li>style dock: hillshade renderer's global transparency value resets after changing symbology settings</li>
<li>style dock: values of raster's layer rendering options not properly restored</li>
</ul>
<h2>Matthias Kuhn</h2>
<ul>
<li>Improve QgsMapLayerRegistry stability</li>
<li>Processing: Difference algorithm: don't ignore invalid geometries by default</li>
<li>Fixed some Python 3 compatibility issues</li>
<li>Work on re-enabling osx tests (merged after 2.16 release)</li>
<li>API documentation</li>
<li>startup.py is executed twice</li>
<li>UX fixes:<ul>
<li>Attribute table: always show sequential column header numbers</li>
<li>Relation Reference Widget: Only enable form button when a feature is set</li>
<li>Show feature id in attribute table tooltip</li>
<li>Initial widget focus in credential dialog</li>
<li>Default timeout for message bar items</li>
<li>Add button" state in postgis source select dialog</li>
</ul>
</li>
<li>Install missing header files</li>
<li>Crash on exit</li>
<li>Network cache directory</li>
<li>Feature form hidden behind main window on Windows</li>
<li>Offline editing: Respect relative paths</li>
<li>Offline editing, changed attributes end up in wrong feature</li>
<li>Offline editing: Don't crash with raster layers</li>
<li>Relation form grows infinitely</li>
<li>Fix crash when loading style in layer properties</li>
<li>Fix crash when closing docked attribute table</li>
<li>Fix default-misconfigured gpsbabel path</li>
<li>Show correct feature count with rule that requires geometry</li>
<li>Fix crash when using 2.5D renderer with incompatible layer</li>
</ul></p><p><img src="/media/"/></p>QGIS 2.14 Documentationhttps://changelog.qgis.org/en/entry/563<p><p>Having now an automatic way to create a ticket in the documentation repository
for each new feature in QGIS, we are sure that all new features is now in the
documentation.</p>
<p>The documentation team worked hard on three releases of QGIS: 2.10, 2.12
and 2.14 so the documentation is now up to date for the current Long Terme
Release of QGIS. This is around 180 new features that have been documented in
4 months.</p>
<p>If you think there are some missing features in the documentation, feel free
to add a new ticket, write small text to describe it or better push a
contribution.</p>
<p>The documentation team will now work hard the next months to document the
current stable release (2.16) of QGIS.</p>
<p>Check the 2.10, 2.12 and 2.14 milestone to see all the documentation work that has taken place:</p>
<ul>
<li>https://github.com/qgis/QGIS-Documentation/milestone/5</li>
<li>https://github.com/qgis/QGIS-Documentation/milestone/4</li>
<li>https://github.com/qgis/QGIS-Documentation/milestone/3</li>
</ul></p><p><img src="/media/images/entries/3d6aea22a76278945fcbaebcb6e959c6f4f8790e.png"/></p>Preconfigured algorithmshttps://changelog.qgis.org/en/entry/552<p><p>Algorithms with preconfigured parameters can now be added to the Processing toolbox, as a shortcut for a given process.</p></p><p><img src="/media/"/></p>Plugins can add pages to vector layer propertieshttps://changelog.qgis.org/en/entry/533<p></p><p><img src="/media/"/></p>Paste GeoJSON features directly into QGIShttps://changelog.qgis.org/en/entry/468<p><p>QGIS clipboard handler can now parse many additional text formats, including native support for GeoJSON feature collections. This allows you to directly copy and paste GeoJSON strings into QGIS and have them automatically converted into QGIS features and geometries.</p></p><p><img src="/media/images/entries/b649df59dc031b26896e9bba2e20c8380081b741.gif"/></p>Parameterized svg support for composer svg imageshttps://changelog.qgis.org/en/entry/471<p><p>This change makes it possible to change an SVG files fill and outline colors, and outline width when using parameterised SVG files such as those included with QGIS. For more details on parameterised SVG files see <a href="http://blog.sourcepole.ch/2011/06/30/svg-symbols-in-qgis-with-modifiable-colors/">this article</a>.</p></p><p><img src="/media/images/entries/f9766e2ad952c9a3d4a7fe2ddbdfa20d63b2aff4.png"/></p>Outline setting for font markers symbolhttps://changelog.qgis.org/en/entry/502<p><p>Font markers symbol can now have outline, which can help increasing visibility of such symbols by adding an outline buffer color. Emoji-enabled font characters can serve as nice markers when used with a thick outline.</p></p><p><img src="/media/images/entries/be266e3dace9cc7011bfea6bab34ee8e4ade414e.jpeg"/></p>OGR datasets are opened in read-only mode by defaulthttps://changelog.qgis.org/en/entry/509<p><p>Allows concurrent editing of Shapefiles and Tabfiles in both QGIS & MapInfo.</p></p><p><img src="/media/"/></p>OGR FID attribute shownhttps://changelog.qgis.org/en/entry/503<p><p>QGIS now exposes the OGR FID as first attribute when it is meaningful, eg for GPKG and other database based drivers.</p></p><p><img src="/media/"/></p>New tools for drawing polygons and polylineshttps://changelog.qgis.org/en/entry/479<p><p>Two new types of composer shape items, based on nodes, are now available in the map composer. Using these you can draw polygons or polylines within your composition in just a few clicks.</p>
<p>New tools have also been added to allow editing nodes (ie move or remove nodes) and also to add new nodes to an existing shape. Composer polygon and polyline items can also be styled using all the symbol styles available for line and polygon layers!</p></p><p><img src="/media/images/entries/52e5ebd093c119ee882b1c354fefc97f5e823ffc.png"/></p>New simple marker symbolshttps://changelog.qgis.org/en/entry/481<p><ul>
<li>semicircle, third, quarter circles</li>
<li>half triangle markers</li>
<li>filled cross and hexagon markers</li>
<li>diamond ellipse marker</li>
</ul></p><p><img src="/media/images/entries/e5f7ea942c155a0a8dff05c60aca0f299907ee02.png"/></p>New options for on the fly simplificationhttps://changelog.qgis.org/en/entry/546<p><p>The user can select the algorithm to use when the local-side simplification runs to draw geometries faster.
Now, QGIS provides three algorithms:</p>
<ul>
<li>Distance (default algorithm, and the only option available in previous QGIS releases)</li>
<li>SnapToGrid</li>
<li>Visvalingam</li>
</ul>
<p>This change also moves the local "on-the-fly" simplification from the provider and iterator classes to the rendering code. This avoids cases where simplification changes the geometry fetched from vector data providers, possibly affecting rule based and other expression based symbology. This is important when you have expressions that use the feature geometry (e.g. calculation of area) - we want to be sure that these calculations are done on the original geometry, not on the simplified ones.</p></p><p><img src="/media/images/entries/9460e7d5f10a8c89697cef1f80674ca30d1c3aef.jpg"/></p>New option to zoom to a layer's visible scale rangehttps://changelog.qgis.org/en/entry/473<p><p>For layers with a visible scale range set, selecting this option will automatically set the scale to the closest scale where the layer is visible. Additionally, the interface has been tweaked so that layers which are outside their scale range and hidden are shown greyed out in the layer tree.</p></p><p><img src="/media/images/entries/e15880a6d0d095c8be69eec510f8563b569e5342.gif"/></p>New map tool for interactively setting point symbol offsethttps://changelog.qgis.org/en/entry/517<p><p>Allows for setting a point's offset if it is bound to a field using data defined overrides. The offset field should be a text field. The map tool to interactively set the offset is in the advanced digitising toolbar in the icon group with the point rotation tool. See the attached animation for an example. Note that when making subsequent adjustments to the offset, you should drag from the original point vertex marker, not the current position of the symbol as rendered on the map.</p></p><p><img src="/media/images/entries/56a9953a6923d6b9b481b099a5a9dfec0146ba90.gif"/></p>New configuration options for attribute tablehttps://changelog.qgis.org/en/entry/506<p><ul>
<li>Allow reordering the attribute table columns (via right click on field name header --> "Organize Columns" dialog; drag and drop to reorder)</li>
<li>Allow adding a new column to the attribute table to hold buttons for triggering an action based on the chosen feature</li>
<li>Columns can be hidden from the attribute table (via right click on field name header)</li>
<li>QGIS now remembers the width of any resized columns </li>
</ul></p><p><img src="/media/images/entries/4ac86473163c0b1e322343de1e4013262c2492ce.gif"/></p>New accessibility and low vision symbolshttps://changelog.qgis.org/en/entry/499<p><p>Additional accessibility and low visions symbols are now available in QGIS' SVG symbols collection. </p></p><p><img src="/media/images/entries/7f6fc338b6f85fb59cd6e5e79b27899724e1c33e.png"/></p>New PyQGIS classes in 2.16https://changelog.qgis.org/en/entry/561<p><h3>New core classes</h3>
<ul>
<li><a href="http://qgis.org/api/classQgsComposerNodesItem.html">QgsComposerNodesItem</a> - an abstract base class for composer items which provides generic methods for nodes based
shapes such as polygons or polylines</li>
<li><a href="http://qgis.org/api/classQgsComposerPolygon.html">QgsComposerPolygon</a> - a composer item for polygon shapes</li>
<li><a href="http://qgis.org/api/classQgsComposerPolyline.html">QgsComposerPolyline</a> - a composer item for polyline shapes</li>
<li><a href="http://qgis.org/api/classQgsGroupUngroupItemsCommand.htmll">QgsGroupUngroupItemsCommand</a> - a composer undo command class for grouping / ungrouping composer items</li>
<li><a href="http://qgis.org/api/classQgsConstWkbSimplifierPtr.html">QgsConstWkbSimplifierPtr</a> - WKB reader which simplifies geometries on the fly</li>
<li><a href="http://qgis.org/api/classQgsAction.html">QgsAction</a> - a utility class that encapsulates an action based on vector attributes</li>
<li><a href="http://qgis.org/api/classQgsActionManager.html">QgsActionManager</a> - stores and manages actions associated with a layer</li>
<li><a href="http://qgis.org/api/classQgsAggregateCalculator.html">QgsAggregateCalculator</a> - a utility class for calculating aggregates for a field (or expression) over the features from a vector layer</li>
<li><a href="http://qgis.org/api/classQgsAttributeTableConfig.html">QgsAttributeTableConfig</a> - a container for configuration of the attribute table for a vector layer</li>
<li><a href="http://qgis.org/api/classQgsDateTimeStatisticalSummary.html">QgsDateTimeStatisticalSummary</a> - calculator for summary statistics and aggregates for a list of datetimes</li>
<li><a href="http://qgis.org/api/classQgsInterval.html">QgsInterval</a> - a representation of the interval between two datetime values</li>
<li><a href="http://qgis.org/api/classQgsJSONExporter.html">QgsJSONExporter</a> - handles exporting QgsFeature features to GeoJSON features</li>
<li><a href="http://qgis.org/api/classQgsJSONUtils.html">QgsJSONUtils</a> - helper utilities for working with JSON and GeoJSON conversions</li>
<li><a href="http://qgis.org/api/classQgsRuntimeProfiler.html">QgsRuntimeProfiler</a> - simple profiler for timing code paths during execution</li>
<li><a href="http://qgis.org/api/classQgsSQLStatement.html">QgsSQLStatement</a> - utility class for parsing SQL statements</li>
<li><a href="http://qgis.org/api/classQgsStringStatisticalSummary.html">QgsStringStatisticalSummary</a> - calculator for summary statistics and aggregates for a list of strings</li>
<li><a href="http://qgis.org/api/classQgsHillshadeRenderer.html">QgsHillshadeRenderer</a> - a renderer for generating live hillshade models</li>
<li><a href="http://qgis.org/api/classQgsArrowSymbolLayer.html">QgsArrowSymbolLayer</a> - line symbol layer used for representing lines as arrows</li>
<li><a href="http://qgis.org/api/classQgsNullSymbolRenderer.html">QgsNullSymbolRenderer</a> - a renderer which draws no symbols for features by default, but allows for labeling and diagrams for the layer</li>
<li><a href="http://qgis.org/api/classQgsSimpleMarkerSymbolLayerBase.html">QgsSimpleMarkerSymbolLayerBase</a> - abstract base class for simple marker symbol layers. Handles creation of the symbol shapes but leaves the actual drawing of the symbols to subclasses.</li>
<li><a href="http://qgis.org/api/classQgsFilledMarkerSymbolLayer.html">QgsFilledMarkerSymbolLayer</a> - filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbolV2</li>
</ul>
<h3>New GUI classes</h3>
<h4>Reusable widgets:</h4>
<ul>
<li><a href="http://qgis.org/api/classQgsMultiEditToolButton.html">QgsMultiEditToolButton</a> - a tool button widget which is displayed next to editor widgets in attribute forms, and allows for controlling how the widget behaves and interacts with the form while in multi edit mode</li>
<li><a href="http://qgis.org/api/classQgsSearchWidgetToolButton.html">QgsSearchWidgetToolButton</a> - a tool button widget which is displayed next to search widgets in forms, and allows for controlling how the widget behaves and how the filtering/searching operates</li>
<li><a href="http://qgis.org/api/classQgsLayerTreeEmbeddedConfigWidget.html">QgsLayerTreeEmbeddedConfigWidget</a> - a widget to configure layer tree embedded widgets for a particular map layer</li>
<li><a href="http://qgis.org/api/classQgsLayerTreeEmbeddedWidgetProvider.html">QgsLayerTreeEmbeddedWidgetProvider</a> - provider interface to be implemented in order to introduce new kinds of embedded widgets for use in layer tree</li>
<li><a href="http://qgis.org/api/classQgsLayerTreeEmbeddedWidgetRegistry.html">QgsLayerTreeEmbeddedWidgetRegistry</a> - registry of widgets that may be embedded into layer tree view</li>
<li><a href="http://qgis.org/api/classQgsAttributeFormEditorWidget.html">QgsAttributeFormEditorWidget</a> - a widget consisting of both an editor widget and additional widgets for controlling the behaviour of the editor widget depending on a number of possible modes</li>
<li><a href="http://qgis.org/api/classQgsComposerItemComboBox.html">QgsComposerItemComboBox</a> - a combo box which displays items of a matching type from a composition</li>
<li><a href="http://qgis.org/api/classQgsCompoundColorWidget.html">QgsCompoundColorWidget</a> - a custom QGIS widget for selecting a color, including options for selecting colors via</li>
<li>hue wheel, color swatches, and a color sampler</li>
<li><a href="http://qgis.org/api/classQgsDockWidget.html">QgsDockWidget</a> - QDockWidget subclass with more fine-grained control over how the widget is closed or opened</li>
<li><a href="http://qgis.org/api/classQgsFocusWatcher.html">QgsFocusWatcher</a> - a event filter for watching for focus events on a parent object</li>
<li><a href="http://qgis.org/api/classQgsGradientStopEditor.html">QgsGradientStopEditor</a> - an interactive editor for previewing a gradient color ramp and modifying the position of color stops along the gradient</li>
<li><a href="http://qgis.org/api/classQgsMapLayerConfigWidget.html">QgsMapLayerConfigWidget</a> - a panel widget that can be shown in the map style dock</li>
<li><a href="http://qgis.org/api/classQgsMapLayerConfigWidgetFactory.html">QgsMapLayerConfigWidgetFactory</a> - factory class for creating custom map layer property pages</li>
<li><a href="http://qgis.org/api/classQgsPanelWidget.html">QgsPanelWidget</a> - base class for any widget that can be shown as a inline panel</li>
<li><a href="http://qgis.org/api/classQgsPanelWidgetWrapper.html">QgsPanelWidgetWrapper</a> - inline panel wrapper widget for existing widgets which can't have the inheritance tree changed, e.g dialogs</li>
<li><a href="http://qgis.org/api/classQgsPanelWidgetStack.html">QgsPanelWidgetStack</a> - a stack widget to manage panels in the interface</li>
<li><a href="http://qgis.org/api/classQgsShortcutsManager.html">QgsShortcutsManager</a> - a class that contains a list of QActions and QShortcuts that have been registered and allows their shortcuts to be changed</li>
<li><a href="http://qgis.org/api/classQgsTableWidgetItem.html">QgsTableWidgetItem</a> - this can be used like a regular QTableWidgetItem with the difference that a specific role can be set to sort</li>
<li><a href="http://qgis.org/api/classQgsHillshadeRendererWidget.html">QgsHillshadeRendererWidget</a> - renderer widget for configuring the hill shade renderer</li>
<li><a href="http://qgis.org/api/classQgsRasterTransparencyWidget.html">QgsRasterTransparencyWidget</a> - widget for controlling a raster layer's transparency and related options</li>
<li><a href="http://qgis.org/api/classQgsArrowSymbolLayerWidget.html">QgsArrowSymbolLayerWidget</a> - renderer widget for configuring arrow symbol layers</li>
</ul>
<h4>Reusable dialogs:</h4>
<ul>
<li><a href="http://qgis.org/api/classQgsOrganizeTableColumnsDialog.html">QgsOrganizeTableColumnsDialog</a> - dialog for organising (hiding and reordering) columns in the attributes table</li>
<li><a href="http://qgis.org/api/classQgsConfigureShortcutsDialog.html">QgsConfigureShortcutsDialog</a> - dialog for allowing users to configure shortcuts contained in a QgsShortcutsManager</li>
<li><a href="http://qgis.org/api/classQgsNewGeoPackageLayerDialog.html">QgsNewGeoPackageLayerDialog</a> - dialog to set up parameters to create a new GeoPackage layer</li>
<li><a href="http://qgis.org/api/classQgsSourceSelectDialog.html">QgsSourceSelectDialog</a> - generic widget class for listing layers available from a remote service</li>
</ul></p><p><img src="/media/"/></p>New "Filled marker" symbol layer typehttps://changelog.qgis.org/en/entry/508<p><p>A "filled marker" is similar to the simple marker symbol layer, except that it uses a fill sub symbol to render the marker. This allows use of all the existing QGIS fill (and outline) styles for rendering markers, eg gradient or shapeburst fills. </p></p><p><img src="/media/images/entries/6107e2a6192e6d459fce2f0a1d9da99680dc53b0.png"/></p>Named parameters in expressionshttps://changelog.qgis.org/en/entry/485<p><p>In QGIS 2.16 the expression engine now supports use of named parameters. This means that instead of writing the cryptic expression:
<code>clamp(1,2,3)</code>
you can use:
<code>clamp( min:=1, value:=2, max:=3)</code>
This change also allows arguments to be switched, eg:
<code>clamp( value:=2, max:=3, min:=1)</code>
Using named parameters helps clarify what the arguments for an expression function refer to, which is helpful when you are trying to interpret an expression at a later date!</p></p><p><img src="/media/"/></p>Multiple columns in attribute formshttps://changelog.qgis.org/en/entry/478<p><p>When using the drag and drop designer, a user can specify over how many columns the fields should be distributed.</p>
<p>To enable multiple columns in the "Fields" tab of the layer properties:</p>
<ul>
<li>Make sure you are using the drag and drop designer form mode</li>
<li>Double click group containers, such as tabs or groups</li>
<li>a small dialog will appear where you can select the nr of columns</li>
</ul>
<p>The order will be first column, second column, nth column, next row, etc.</p></p><p><img src="/media/images/entries/f8297ba9ee600c3d41114db96f56b00bb278ba4e.gif"/></p>More distance unitshttps://changelog.qgis.org/en/entry/466<p><p>The choice of distance units has been widened, with new options including kilometers, yards and miles. Using these units prevents the need for manual conversion of distances (eg feet to miles).</p></p><p><img src="/media/images/entries/a550363f123d3bf08bd53fef79dc92559ae8965d.png"/></p>More control over centroid fill point renderinghttps://changelog.qgis.org/en/entry/505<p><p>An option has been added to control whether the marker is drawn on all parts or a single part of multi-features. </p></p><p><img src="/media/images/entries/1a5e1daeefff5beb028c3230fffd86624974acea.png"/></p>Massive improvements to WFS Providerhttps://changelog.qgis.org/en/entry/488<p><p>QGIS 2.16 brings an overhaul of the WFS provider, including </p>
<ul>
<li>Version autodetection</li>
<li>On-disk caching of downloaded features</li>
<li>Background download and progressive rendering</li>
<li>WFS 1.1 and 2.0 support</li>
<li>WFS 2.0 GetFeature paging</li>
<li>Add provider tests</li>
<li>Support for WFS 2.0 joins</li>
<li>URI parameter with sql with SELECT / FROM / JOIN / WHERE / ORDER BY clauses</li>
<li>Handle DateTime fields</li>
<li>Enable "Only request features overlapping the view extent" by default (and memorize the settings)</li>
<li>Support for additional/mixed geometry types (CurvePolygon, CompoundCurve)</li>
<li>More tolerance for non-conforming WFS servers</li>
</ul></p><p><img src="/media/images/entries/d69f2cc2fcc59b26d830bb84c82d5e6c9d89beae.png"/></p>Map tip improvementshttps://changelog.qgis.org/en/entry/537<p><ul>
<li>Maptip visibility is now preserved across sessions</li>
<li>Maptips can now show HTML content, including images, videos and URL links</li>
</ul></p><p><img src="/media/images/entries/96467c2c86ede6392190f021d266ee0e7ed6cbb5.png"/></p>Map canvas magnifierhttps://changelog.qgis.org/en/entry/518<p><p>A magnifier tool has been added to QGIS, which allows you to magnify the map at a given scale. This allows you to zoom in to a map without altering the map scale, making it easier to accurately tweak the positions of labels and symbols. Additionally, a default magnification value can be defined in settings, which is very useful for high resolution screens!</p></p><p><img src="/media/images/entries/4991ffccebf8da94cd01acc1139f52d389731549.gif"/></p>Make readOnly mode of vector layers configurable in projecthttps://changelog.qgis.org/en/entry/475<p><p>Using this option, you can prevent users from inadvertently editing layers. Go to <code>Project properties -> Identify layers</code> to configure which layers should be presented as read only.</p></p><p><img src="/media/images/entries/9fce381bdf92bd039a26282a93579d5d5ef22e92.png"/></p>Live hillshade rendererhttps://changelog.qgis.org/en/entry/536<p><p>QGIS 2.16 has a new raster renderer that will dynamically create a hillshade model from a Digital Elevation Model.</p></p><p><img src="/media/images/entries/62f9492d1949677e316625b415ec732e63fcd3ec.gif"/></p>Legend entries for diagram sizehttps://changelog.qgis.org/en/entry/495<p><p>A new "legend" tab has been added to diagram properties, allowing both the existing attribute legend and a new size legend to be enabled/disabled. The size legend has a configurable marker symbol.</p></p><p><img src="/media/images/entries/eb51ab12f096acf0422786510fc15324060fe9e1.png"/></p>Labeling map tools now work with rule-based labeling https://changelog.qgis.org/en/entry/504<p><p>In previous versions of QGIS when rule-based labelling was in place, you could not use the labelling map tools to interactively place and rotate label positions. This is now supported.</p></p><p><img src="/media/images/entries/fffc27648a04732d7d051734705ccef544b24fba.gif"/></p>Improvements to map zoominghttps://changelog.qgis.org/en/entry/535<p><p>QGIS 2.16 brings improvements to the way you can zoom in and out of the map canvas.</p>
<ul>
<li>Holding down ctrl while using the mouse wheel to zoom in or out now results in a finer zoom. This behavior brings canvas into line with composer.</li>
<li>Pressing Ctrl + or Ctrl - performs an immediate zoom in/out on the map canvas</li>
<li>When certain map tools are active, you can perform a web-map style zoom by holding down shift and dragging a rectangle on the map to zoom to that area. This is enabled for the map tools which are not selection tools (since they use shift for adding to selection), and edit tools.</li>
</ul></p><p><img src="/media/images/entries/5817785cf3d18db78669c2eb2c2be0cf606c3783.gif"/></p>Improvements to calendar popupshttps://changelog.qgis.org/en/entry/477<p><p>Today's date is now highlighted in calendar popup widgets, making it easier to select a date relative to the current day.</p></p><p><img src="/media/images/entries/83b0414698c309c7afacb9da1b01370cff94497d.gif"/></p>Improved map select tool behaviourhttps://changelog.qgis.org/en/entry/526<p><p>The behavior of the map based selection tools has been refined, with the following changes:</p>
<p>For click-and-drag selections:</p>
<ul>
<li>holding shift = add to selection</li>
<li>holding ctrl = subtract from selection</li>
<li>holding ctrl+shift = intersect with current selection</li>
<li>holding alt (can be used with shift/ctrl too) = change from "intersects" to "fully contains" selection mode</li>
</ul>
<p>For single-click selections:</p>
<ul>
<li>holding shift or ctrl = toggle whether feature is selected (i.e. either add to current selection or remove from current selection)</li>
</ul>
<p>This change brings the canvas behaviour into line with other design apps and also with the composer behaviour.</p></p><p><img src="/media/images/entries/4688ab87c97f9c773a62e3c1d5ceaa615cab8b0e.gif"/></p>Improved handling of Postgres DOMAIN type fields https://changelog.qgis.org/en/entry/501<p><p>QGIS now shows the correct domain type as field type name, and is able to correctly determine the length and precision of domain types. See the PostgreSQL <a href="https://www.postgresql.org/docs/9.1/static/sql-createdomain.html">documentation</a> to find more information about DOMAIN types.</p></p><p><img src="/media/"/></p>Improved color pickershttps://changelog.qgis.org/en/entry/521<p><p>The color button dropdown menus now show a color wheel, allowing for very rapid adustments to colors.</p></p><p><img src="/media/images/entries/1f485fa58f218aa481acf0c118907a1cd60fd682.gif"/></p>Improved HiDPI supporthttps://changelog.qgis.org/en/entry/554<p><p>HiDPI screen users will notice an improved user interface as more work has been done to upgrade icons to rely on SVG images. As of QGIS 2.16, all toolbars are now HiDPI-compatible. </p></p><p><img src="/media/images/entries/e60e55de87e8d2558134f9c9552ef41295642217.png"/></p>Globe: Vertical exaggeration for DTMhttps://changelog.qgis.org/en/entry/550<p><p>Because sometimes it's just nice to exaggerate about the size.</p></p><p><img src="/media/"/></p>Globe: Vector supporthttps://changelog.qgis.org/en/entry/547<p><p>When displaying layers on globe, preserve vector data.</p></p><p><img src="/media/"/></p>Globe: Extrude objectshttps://changelog.qgis.org/en/entry/549<p><p>Allow extruding objects into the 3rd dimension.</p>
<p>Either by a fixed value or by an attribute or expression.</p></p><p><img src="/media/"/></p>Georeference outputs (eg PDF) from composerhttps://changelog.qgis.org/en/entry/531<p><p>In QGIS 2.16 the map composer automatically georeference outputs (when the output format makes this possible, eg TIF and PDF).</p>
<p>The existing option to create a world file has been separated from the map selection for georeferencing. The new behaviour is to always georeference outputs, and only create the
separate world file if that option is checked.</p></p><p><img src="/media/images/entries/e05ee773025d69f028f01ffa15521578be7d3dc3.png"/></p>Generation of default values on Postgres layers "just in time"https://changelog.qgis.org/en/entry/482<p><p>The expression used to generate default values for a field on the
postgres database are currently being printed on the feature form.</p>
<pre><code>nextval('serial')
</code></pre>
<p>A new option in the "project properties" (tab "Data Sources") allows evaluating the expression before
opening the form and will directly print the new value in the feature form.</p>
<pre><code>23
</code></pre>
<p>The main advantage of this improvement, is that one can now directly create and link records of related tables before having to save the data first, because the primary key is already present before the feature is saved.</p></p><p><img src="/media/images/entries/6d4b378f46ee1338b7aa80f15adf2ea8e510909e.png"/></p>Forms view: side column now sortablehttps://changelog.qgis.org/en/entry/559<p><p>In the forms mode of the QGIS attribute table there is a side column one can use to directly jump to a specific feature. Up-to this release, this side view was not sortable. For sorting, one had to jump to the table mode and then back to the form mode. Now one can directly sort the feature by the feature attribute preview in the side panel by chosing the sort function on the expression drop-down button above the side column.</p></p><p><img src="/media/images/entries/3d6b97523db9d4389e5dbac8f0befb10d9d8f020.png"/></p>Form based select and filterhttps://changelog.qgis.org/en/entry/527<p><p>In QGIS 2.16 a new mode was added to the attribute table dialog for searching and filtering features. When activated (using a button on the toolbar or by pressng CTRL+F), the dialog will switch to form view and all widgets are replaced with their search widget wrapper variant.</p>
<p>Alongside each widget is a tool button with options for controlling the search/filter behaviour for that field, eg "equal to", "not equal to", "is null", "greater than", etc.., with the options presented matching themselves to the corresponding field and widget type.</p>
<p>New buttons appear at the bottom of the form for either selecting matching features (with options for add to selection/remove from selection/select within current selection) or filtering features in the table (with options for adding features to a current filter or further restricting a current filter).</p>
<p>You can also access this mode with the new "Select by Value" option, or by pressing F3 with a layer selected.</p></p><p><img src="/media/images/entries/481596921dd3e432cb4414b42e17fce6e7d9e84c.gif"/></p>Extend linestring geometries with reshape toolhttps://changelog.qgis.org/en/entry/522<p><p>The reshape tool now allows you to extend linestrings, by starting a reshape at either a line's start or end point.</p></p><p><img src="/media/images/entries/52726f3b8cd8b62d63a32b9628dd8d3cef53172c.gif"/></p>Embedded widgets in layer treehttps://changelog.qgis.org/en/entry/540<p><p>This allows definition of widgets embedded into layer tree for individual layers in the layer properties dialog (in new Legend tab). The idea is to have a way to quickly access to some actions that are often used with a layer.</p>
<p>The implementation comes with transparency widget, in the future there may be more standard widgets coming, e.g. to setup filtering, selection, style or other stuff. The API allows plugins to register their own widgets, which will be useful for various domain specific plugins to assign custom widgets to layers they manage.</p></p><p><img src="/media/images/entries/f6cd05f9d927a47543b0c3b1fba740d86a226076.png"/></p>Embed atlas features into composer HTML source as GeoJSONhttps://changelog.qgis.org/en/entry/511<p><p>This change makes the current atlas feature (and additionally all attributes of related child features) available to the source of a composer HTML item, allowing the item to dynamically adjust its rendered HTML in response to the feature's properties. An example use case is dynamically populating a HTML table with all the attributes of related child features for the atlas feature.</p>
<p>To use this, the HTML source must implement a "setFeature(feature)" JavaScript function. This function is called whenever the atlas feature changes, and is passed the atlas feature (and all related attributes) as a GeoJSON Feature.</p></p><p><img src="/media/images/entries/15b7c338bb2fa76444929f3c7ae6fd6614018032.png"/></p>Edit attributes of multiple features simultaneouslyhttps://changelog.qgis.org/en/entry/498<p><p>This change allows the attributes of multiple features to be edited simultaneously. It is enabled when the attribute table dialog is in "form mode", via a new "multi edit" button on the toolbar. There's also a shortcut to edit multiple selected features by using Edit -> Modify Attributes of Selected Features.</p>
<p>In this mode, attribute value changes will apply to all selected features. New widgets appear next to each editor widget allowing for display of the current multi-edit state and for rolling back changes on a field-by-field basis.</p>
<p>Changes are made as a single edit command, so pressing undo will rollback the attribute changes for all selected features at once.</p>
<p>Multiedit mode is only available for auto generated and drag and drop forms - it is not supported by custom ui forms.</p></p><p><img src="/media/images/entries/d0d864bec8d2ec5bd1fa12e48ad7268a30455c82.gif"/></p>Easier use of HTML in labelshttps://changelog.qgis.org/en/entry/476<p><p>In QGIS 2.16, the base stylesheet of composer labels will automatically set the label font and margins to match the label's settings. This allows interactive choice of font, margins and colors and avoids the need to manually set these with CSS within the label HTML code.</p></p><p><img src="/media/images/entries/d078efbe63f71e8bdf28d476f9da0396f4b7dc0a.png"/></p>Diagrams behave like labels and can be managed from toolbarhttps://changelog.qgis.org/en/entry/493<p><p>Originally, there was a toolbar for labels allowing to :
- set labeling options for labels of the current layer
- highlight the pinned labels. Highlighting is green on editable layer, blue otherwise.
- pin or unpin labels
- move, show and hide labels</p>
<p>With this new feature, a new tool is available in the label toolbar allowing to set properties of diagrams for the current layer. Moreover, each tool mentioned above are now fully usable with diagrams too.</p></p><p><img src="/media/images/entries/eb337b7d02cd7ecb923134de80a63aa62c3e8bb8.png"/></p>Desktop MIME icons for QGIS file typeshttps://changelog.qgis.org/en/entry/558<p><p>It's now easier to recognise and differentiate QGIS's file types on your operating system files manager. There are now desktop MIME Icons for the following file types:
* <em>.qgs - QGIS Project file
* </em>.qml - Layer settings file
* <em>.qlr - Layer definitions file
* </em>.qpt - Composer template file</p></p><p><img src="/media/images/entries/9161a4c36a0149b32cd18119954ac32ce42788a6.PNG"/></p>Default datum transformation for serverhttps://changelog.qgis.org/en/entry/491<p><p>Will have to dig through https://github.com/qgis/QGIS/commit/70863ecaf0ccfcb538e3892af4b528304b21a0a2 to find details</p></p><p><img src="/media/"/></p>DXF export improvementshttps://changelog.qgis.org/en/entry/492<p><p>Support has been added for rule based labeling and rotated symbols, and for outputting 3D geometries.</p></p><p><img src="/media/images/entries/8a21b400f4e417df6e25f32c8b23191f1ff83628.png"/></p>Create a plugin with script-based algorithms from the toolboxhttps://changelog.qgis.org/en/entry/553<p><p>Previously, the only way to create a QGIS plugin which added new algorithms to Processing was to manually develop those algorithms and create a new algorithm provider. Now, algorithms can be written as simple Processing scripts, and a plugin containing them can be created directly from the Processing Toolbox. That plugin can be then distributed as a regular plugin, and will extend Processing when active. </p></p><p><img src="/media/"/></p>Create GeoPackage layershttps://changelog.qgis.org/en/entry/500<p><p>The <a href="http://www.geopackage.org">GeoPackage</a> format is an open standard for geospatial data that should be on your radar as a replacement for the ESRI Shapefile format. It addresses many shortcomings with the shape file format including limitations in the number and width of fields. In QGIS 2.16 it is now easy to create a new GeoPackage as it has been integrated into the <code>Layer</code> toolbar and <code>Layer -> Create Layer</code>menu.</p></p><p><img src="/media/images/entries/34cfb4a4532464ab1983e561228a9a16d16dfd54.png"/></p>Copying features in GeoJSON formathttps://changelog.qgis.org/en/entry/510<p><p>The previous setting for include WKT when copying features has been replaced with a choice of copying features as "Plain text, attributes only", "Plain text, WKT geometry" and a new "GeoJSON" option. When set to "GeoJSON", copying features in QGIS will place a GeoJSON text representation of the features on the clipboard for easy pasting into other applications/JavaScript code. These settings can be found in the <code>Settings -> Options -> Data Sources -> Copy features as</code>.</p></p><p><img src="/media/images/entries/826068a22b7e7d472720f2404e293fc81de32850.gif"/></p>Copy cell contents from attribute tablehttps://changelog.qgis.org/en/entry/538<p><p>A new context menu item called <code>Copy cell content</code> is now available in the menu opened by a right click on a cell within the attribute table. When this button is clicked, the content of the cell is copied in the clipboard, whatever the kind of widget.</p></p><p><img src="/media/images/entries/968170742ce1d075c6ab1c462e682ea4fd8c5225.png"/></p>Control over attributes to export when saving a vector layerhttps://changelog.qgis.org/en/entry/487<p><p>Checkboxes have been added so that you can select which attributes you want included in the export, and you also now have the option to write "displayed" values rather than raw values. This option is useful for layers with relations, where you'd like a literal value included rather than a numeric identifier.</p>
<p>Depending on the data format, the "displayed value" is enabled by default, e.g. for export to spreadsheet formats (ODF, XLSX, CSV/Text).</p></p><p><img src="/media/images/entries/1c9b2b234c1ccb7a1b92af1f5856817f65dc70f1.png"/></p>Control outline join style for simple, ellipse, and font markershttps://changelog.qgis.org/en/entry/484<p><p>Users can now change the join style of outlines for simple, ellipse, and font markers to fine-tune their symbology. </p></p><p><img src="/media/images/entries/c6b3a2f051a8c4e3f82c5cb6a995ae150acccb4b.png"/></p>Constraints on widgetshttps://changelog.qgis.org/en/entry/519<p><p>In previous QGIS versions there was no way to check the validity of values entered by a user for a feature's attributes. Now, a user can specify a constraint on each widget in an layer's attribute form. Constraints are created using QGIS' expressions, eg <code>"min_population" > 50000</code>. A "Not Null" checkbox is also available to indicate that a value must be entered for the field. Additionally, descriptive text can be added to give the user helpful feedback when a constraint fails.</p>
<p>Constraints are evaluated on the fly while a user is modifying a feature. A tooltip is available on any field having a constraint, showing the constraint's expression, the result of the evaluation and a description of the constraint. A message bar will also displayed at the top of the form summarizing any fields which do not meet the constraint criteria.</p></p><p><img src="/media/images/entries/ab562b71015b29b17a6b86e8e3c5f71838e25d50.png"/></p>Composer maps now auto-update with presetshttps://changelog.qgis.org/en/entry/520<p><p>When a composer map is set to follow a style preset, it will automatically be updated whenever the style is changed.</p>
<p>A new option has been added in composer map properties: "Follow visibility preset" with a combo box to choose the active preset. This is an alternative to "lock layers" (and "lock layer styles") functionality which just copy a preset's configuration, while this new option creates a link to the preset.</p>
<p>The difference is that when a preset is updated, composer map will automatically pick the new configuration when following the preset, while there is no update if "lock layers" (and "lock layer styles") option is used.</p></p><p><img src="/media/images/entries/6ef5520185d80b38adcbba6c54e4fbdb6c2584fc.gif"/></p>Choice of default view for the attribute dialoghttps://changelog.qgis.org/en/entry/472<p><p>In previous QGIS versions the attribute dialog would always be opened in the table view. Now, you have the choice of always defaulting the dialog to either the table view, form view or to remember the last view used.</p></p><p><img src="/media/images/entries/53f72a9cf1bf32d73eb5174c37e54c60002b9707.gif"/></p>Changes to expressionshttps://changelog.qgis.org/en/entry/528<p><ul>
<li>Support <code>date + time</code> = datetime calculations</li>
<li>Support for <code>date - date</code>, <code>time - time</code> and <code>datetime - datetime</code> type calculations which return an interval.</li>
<li>New <code>char(...)</code> function for returning a matching character by unicode value</li>
</ul></p><p><img src="/media/"/></p>Basic support for Oracle Workspace Managerhttps://changelog.qgis.org/en/entry/557<p><p>Support has been added for Oracle Workspace Manager when using the Oracle Provider.</p>
<p>See https://github.com/qgis/QGIS/commit/d161612bd216d36dc23ab2307636cf1bc0a36192</p></p><p><img src="/media/"/></p>Authentication system's documentation in users manualhttps://changelog.qgis.org/en/entry/562<p><p>The authentication system features introduced in earlier versions of QGIS (2.12 and 2.14) are now fully documented in the Users manual, and will be a great contribute to the system's understanding and adoption.</p></p><p><img src="/media/images/entries/2408c7661583ab3114123624225f8f8422c634a3.png"/></p>Arrow symbol layerhttps://changelog.qgis.org/en/entry/496<p><p>The "arrow" symbol layer is a symbol layer allowing to draw straight or curved arrows from a line layer.</p>
<p>In curved mode, nodes of the line layer this symbol layer is applied to are used as control points for circle arcs.
Arrows can be filled with whatever existing filling style QGIS supports.
Options also allows to select the type of the arrow (with one or two heads, plain or halved), its width (that may be variable) and size of the heads.</p></p><p><img src="/media/images/entries/000cc7827fe96aa72aedb646e6497cc69a050396.png"/></p>ArcGIS Map and Feature REST serviceshttps://changelog.qgis.org/en/entry/543<p><p>QGIS is now able to connect to ArcGIS REST services.</p>
<p>You can connect to ArcGIS Feature services (WFS equivalent in ESRI world) and ArcGIS Map services (WMS equivalent). The provider allows you to read maps and vector layers from those services.</p>
<p>This feature is quite convenient for users who would like to switch from an ESRI GIS stack without losing anything they already have built on private or public map services.
You can also connect to public services provided by ESRI.</p></p><p><img src="/media/"/></p>Aggregate support for expressionshttps://changelog.qgis.org/en/entry/524<p><p>QGIS 2.16 adds support for a several types of aggregates to the expression engine. These include:</p>
<ol>
<li>
<p>Aggregates within the current layer, eg <code>sum("passengers")</code>
Supports sub expressions (ie <code>sum("passengers"/2) )</code>, group by ( <code>sum("passengers", group_by:="line_segment")</code> ), and optional filters ( <code>sum("passengers", filter:= "station_class" > 3 )</code> )</p>
</li>
<li>
<p>Relational aggregates, which calculate an aggregate over all matching child features from a relation, eg <code>relation_aggregate( 'my_relation', 'mean', "some_child_field" )</code></p>
</li>
<li>
<p>A summary aggregate function, for calculating aggregates on other layers. Eg <code>aggregate('rail_station_layer','sum',"passengers")</code>. The summary aggregate function supports an optional filter, making it possible to calculate things like: <code>aggregate('rail_stations','sum',"passengers", intersects(@atlas_geometry, $geometry ) )</code> for calculating the total number of passengers for the stations inside the current atlas feature</p>
</li>
</ol>
<p>In all cases the calculations are cached inside the expression context, so they only need to be calculated once for each set of expression evaluations.</p></p><p><img src="/media/"/></p>Additional GRASS algorithms in processinghttps://changelog.qgis.org/en/entry/465<p><p>For this release, QGIS Processing now includes every <a href="https://grass.osgeo.org/grass70/manuals/vector.html">vector</a>, <a href="https://grass.osgeo.org/grass70/manuals/raster.html">raster</a> and <a href="https://grass.osgeo.org/grass70/manuals/imagery.html">imagery</a> algorithms from GRASS7. Now, there are more than 300 algorithms for you to use directly from the QGIS interface. You have all the power of GRASS7 directly incorporated into QGIS and you can mix GRASS7 algorithms with all other Processing algorithms without having to use a GRASS7 database.</p>
<p>Some unit tests (mostly for raster and imagery algorithms) have also been included for some algorithms, making bug detection easier to handle and to process.</p>
<p>Note that, for the moment, GRASS7 Processing algorithms can only use and produce Shapefile vector layers and GeoTiff rasters.
There is also a limit for some GRASS7 raster algorithms (all of the algorithms that are manipulating color tables) which duplicate raster layers to temporary directories. Depending on the size of your source rasters, you will probably need some disk space to handle them.</p></p><p><img src="/media/images/entries/14903d721ca5c14dda3e28463e3161a2e38aeab8.png"/></p>API: Add pages to vector layer propertieshttps://changelog.qgis.org/en/entry/548<p><p>Allow adding additional pages to the vector layer properties dialog.</p>
<p>This allows putting the configuration for layer related options provided by a plugin directly where they belong for a better user experience.</p></p><p><img src="/media/"/></p>"Repeating" locking mode for constraintshttps://changelog.qgis.org/en/entry/507<p><p>When enabled, repeating locks are not automatically cleared when a new point is added. They are handy when the same constraint must be repeated for multiple points (eg adding vertices which are always 50 meters apart). This functionality is available in the <code>Advanced Digitising Panel</code>.</p></p><p><img src="/media/images/entries/f7dced55540bf500c4d9ca5a0efa9bef617c86e5.gif"/></p>"No symbol" rendererhttps://changelog.qgis.org/en/entry/490<p><p>Using the new "No symbol" renderer in QGIS 2.16 no symbol will be drawn for features, but labeling, diagrams and other non-symbol parts will still be shown.</p>
<p>Selections can still be made on the layer in the canvas and selected features will be rendered with a default symbol. Features being edited will also be shown.</p>
<p>This is intended as a handy shortcut for layers which you only want to show labels or diagrams for, and avoids the need to render symbols with totally transparent fill/border to achieve this. It may not sound useful from the title - but it's quite a handy shortcut!</p></p><p><img src="/media/images/entries/4e02691b64446f5a36f4faf3cc4906726cf57aad.png"/></p>