Release date: 2015-02-20
This is the change log for the next release of QGIS - version 2.8 ' Wien'. Wien is German for 'Vienna' - host city to our developer meet up in November 2009 and again in March 2014.
This is a special release since it is designated an 'LTR' (Long Term Release). LTR releases will be supported with backported bug fixes for one year, and will be in permanent feature freeze (i.e. no new features will be added, only bug fixes and trivial updates).
The purpose of LTR releases is to provide a stable and less frequently changing platform for enterprises and organisations that do not want to deal with updating user skills, training materials etc. more than once per year. The success of the LTR is very much down to you, our beloved users - we need your support to help funding bug fixes and making sure in your support contracts with support providers specify that any bug fixes done on your behalf are applied to the LTR branch as well as our normal development branch.
If an LTR is important to you, please consider also directly supporting the QGIS project, or encourage your commercial provider to use LTR as a basis for your enterprise solution so that everyone may benefit from a stable platform that is being continuously improved and refined. Note that for users and organisations that like to live on the frontier, our regular four monthly releases will continue unabated.
QGIS 2.8 is also a special release because it includes so many great new features, tweaks and enhancements to make the most popular Free desktop GIS even more feature filled and useful.
Whenever new features are added to software they introduce the possibility of new bugs - if you encounter any problems with this release, please file a ticket on the QGIS Bug Tracker.
We would like to thank the developers, documenters, testers and all the many folks out there who volunteer their time and effort (or fund people to do so).
From the QGIS community we hope you enjoy this release! If you wish to donate time, money or otherwise get involved in making QGIS more awesome, please wander along to qgis.org and lend a hand!
Finally we would like to thank our official sponsors for the invaluable financial support they provide to this project:
GOLD Sponsor: Asia Air Survey, Japan http://www.asiaairsurvey.com/
SILVER Sponsor: Sourcepole AG, Switzerland
SILVER Sponsor: State of Vorarlberg, Austria
SILVER Sponsor: Office of Public Works, Ireland, Ireland
BRONZE Sponsor: GIS3W, Italy
BRONZE Sponsor: www.molitec.it, Italy
BRONZE Sponsor: www.argusoft.de, Germany
BRONZE Sponsor: www.openrunner.com, France
BRONZE Sponsor: GKG Kassel,(Dr.-Ing. Claas Leiner), Germany
BRONZE Sponsor: Customer Analytics, USA
BRONZE Sponsor: Urbsol, Australia
BRONZE Sponsor: MappingGIS, Spain
BRONZE Sponsor: Lutra Consulting, UK
BRONZE Sponsor: ADLARES GmbH, Germany
BRONZE Sponsor: Avioportolano Italia, Italy
A current list of donors who have made financial contributions large and small to the project can be seen on our donors list. If you would like to become an official project sponsor, please visit our sponsorship page for details. Sponsoring QGIS helps us to fund our six monthly developer meetings, maintain project infrastructure and fund bug fixing efforts.
If you enjoy using QGIS, please consider making a donation to support the project - either financial or of your time and skills! Lastly we would like to also take a moment to encourage you to fund a special campaign by one of our QGIS developers to get a working test suite for QGIS so that we can improve out quality assurance process and deliver you the best possible releases.
QGIS is Free software and you are under no obligation to pay anything to use it - in fact we want to encourage people far and wide to use it regardless of what your financial or social status is - we believe empowering people with spatial decision making tools will result in a better society for all of humanity.
When editing attributes in the attribute table or forms, you can now enter expressions directly into spin boxes, e.g.
5 * 2.5 and they will be automatically evaluated.
It is now possible to save / load your bookmarks to a file. This makes it easy to share bookmarked locations, or transfer them between computers.
This feature was developed by: Salvatore Larosa
Integer division produces a double when required: Previously dividing two integers in an expression would always result in an integer value, i.e.
5 / 2 = 2. Now the result will always be double when required, so
5 / 2 = 2.5, which is much more expected for users. A new integer divide operator -
// has been added to mimic the old behaviour, i.e.
5 // 2 = 2.
New 'if()' function: There is now a new
if(cond, true, false) expression
Lazy evaluation for expressions
Added get and transform geometry: These new keywords can be used with
getFeature for some geometry tests like intersects, crosses, contains, etc.
geometry - returns the feature's geometry
transform - returns the transformed geometry
In our ongoing quest to improve the stability and quality of QGIS, every commit is now tested against a growing test suite to identify regressions automatically. In the image on the right you can see the list of incoming pull requests on our GitHub page are now automatically annotated with a check or cross based on whether our test suite successfully ran on Travis.ci when the pull request is made or updated.
We are also now regularly performing Coverity scans of QGIS codebase. As a result of this, we have identified and fixed over 1000 flagged issues, including memory leaks and potential crashes. QGIS has a defect density of 0.01 wheras the average for programs of similar size is about 1.0.
The measure tool has been improved so that you can now select which units should be used in the measure dialog. There is also a new info section in the dialog that shows which settings are being used during measurement calculations.
In the QGIS Browser items are now expanded in their own threads, speeding up the load time of the browser and making the browser more responsive. Navigating PostGIS sources is now much faster in the browser. The animated snapshot to the right (click image to see the animation) shows the loading of two slow WMS servers in parallel . The browser's state (tree expansion) is restored on startup.
This feature was developed by: Radim Blazek
If your WMS server supports contextual legends, you can make use of them in QGIS now too. Contextual legends are getLegendGraphic requests which return only the relevant legend for your current view extent, and thus do not include legend items for things you can't see in the current map.
This feature was funded by: Regione Toscana
This feature was developed by: Faunalia
You can now define a custom prefix in the joins manager in the layer properties dialog. When using a prefix, the attribute table in will show joined attribute names with your preferred prefix.
This release add support for creating new temporary scratch layers within QGIS core. Scratch layers can be created in the
Layer --> Create layer --> New Temporary Scratch Layer menu option.
In the attribute table you can now do calculations on selected rows only thanks to the new button added to the field calculator bar.
If you ever wished you could digitise lines exactly parallel or at right angles, lock lines to specific angles and so on in QGIS, now you can! The advanced digitizing tools is a port of the CADinput plugin and adds a new panel to QGIS. The panel becomes active when capturing new geometries or geometry parts
The simplify tool has been overhauled, adding:
OTF reprojection support
user can specify exact tolerance (not just non-sense relative value)
tolerance can be specified either in map units or layer units or pixels
tolerance settings are stored in settings
simplify multiple features at once (drag a rectangle instead of just clicking)
support for multi-part features
statistics about reduction of the number of vertices
This feature was funded by: Tracks for Africa
There is a new snapping mode : snap to all layers which makes it quick to enable snapping between all layers. Also the underlying snapping architecture of QGIS has been overhauled making snapping much faster on large projects and improving the precision with which snapping takes place. There’s also less confusion with snapping tolerances being to map units or layer units, so those anticipated 1 metre tolerances don’t become 1 degree tolerances without you knowing.
This feature was developed by: Lutra Consulting
Advanced users who leverage QGIS's rule based renderer system will be pleased to see that the rules are now presented as a tree in the legend. Better still, each node in the tree can be toggled on/off individually providing for great flexibility in which sublayers get rendered in your map.
This feature was funded by: SIGE
View menu option to hide bounding boxes. This allows users to hide the bounding boxes for selected items within a composition. It's a handy feature for allowing interaction with items while previewing exactly how they will look when the composition is exported, without large boxes blocking the view.
Full screen mode for composer
Option to toggle display of panels in composer, available by both the
view menu, using the shortcut
F10 and by pressing
Tab when the composer canvas is selected. It's useful for maximising the space when planning a map layout.
In the composer you now have finer control of frame and annotation display. Previously, for rotated maps or reprojected grids, the composer would draw all coordinates for every map side. This resulted in a mix of latitude/y and longitude/x coordinates showing on a side. Now you can control whether you want all coordinates, latitude only or longitude only for each map frame side. Similar options have also been added for controlling how a map grid frame is divided.
New vertical descending direction for annotations. This change adds a new descending vertical direction mode for map grid annotations. Previously only ascending text was supported for vertical annotations.
You can now control both horizontal and vertical margins for label items. Previously only a single margin setting would apply to both horizontal and vertical margins. This change allows users to specify different horizontal and vertical margins.
You can now specify negative margins for label items, allowing text to be drawn slightly outside of a label item's bounds. This is desirable for aligning label items with other items while allowing for optical margin alignment for the label type.
You can now drag and drop python scripts into QGIS window and they will be executed automatically. We also added a toolbar icon to the plugins toolbar and a shortcut (
Ctrl-Alt-P ) for quick access to the python console.
With this new parameter type, used in Select by location, Extract by location and Join attributes by location algorithms, the user can select precisely the spatial operator to use.
This feature was funded by: French Ministry of Ecology, Sustainable Development and Energy
This feature was developed by: Camptocamp
A number of new algorithms have been added to the processing framework:
Regular points algorithm (addresses #5953)
Symetrical difference algorithm (addresses #5953)
Vector split algorithm (addresses #5953)
Vector grid algorithm (addresses #5953)
Hypsometric curves calculation algorithm
Split lines with lines
Refactor fields attributes manipulation algorithm
Comments can now be added to expressions using an SQL style
You can now define custom expression functions in the expression widget. See this blog post for more details.
QGIS can now be built using Qt5 libraries. Note that currently most binaries will still with Qt4 by default.
In the API we have added support for bulk loading of spatial index. This is much faster way of initializing a spatial index. From python it is as simple as:
index = QgsSpatialIndex( layer.getFeatures() )
From a simple test with 50K points in a memory layer:
bulk loading ~ 100 ms
inserting features ~ 600 ms
The index tree should be also in theory be better constructed and may result in faster lookups.
In the DB Manager SQL editor, it is now possible to highlight a portion of the SQL and only that portion will be executed when you press
F5 or click the
Python plugins support for QGIS server brings the power of python to server side, allowing for fast and efficient development and deployment of new features.
This feature was developed by: Alessandro Pasotti (ItOpen)
QGIS Server now supports predefined layer styles in GetMap requests
QGIS Server now supports multiple styles in GetStyles request (see symbology section below)
Styled Layer Descriptor profile of the Web Map Service : DescribeLayer
Defining a user-defined style requires information about the features being symbolized, or at least their feature/coverage type. Since user-defined styles can be applied to a named layer, there needs to be a mechanism by which a client can obtain feature/coverage-type information for a named layer. This is another example of bridging the gap between the WMS concepts of layers and styles and WFS/WCS concepts such as feature-type and coverage layer. To allow this, a WMS may optionally support the DescribeLayer request.
DescribeLayer method has been thought to be a better approach than overloading the WMS capabilities document even more.
For each named layer, the description should indicate if it is indeed based on feature data and if so it should indicate the WFS/WCS (by a URL prefix) and the feature/coverage types. Note that it is perfectly valid for a named layer not to be describable in this way.
This new symbol layer type allows for filling polygons with a (tiled) raster image.
Options include (data defined) file name, opacity, image size (in pixels, mm or map units), coordinate mode (feature or view), and rotation.
The new heatmap vector layer renderer allows for live, dynamic heatmaps for point layers.
Options include specifying heatmap radius in pixels, mm or map units, choice of color ramp,weighting points by field, and a slider for selecting a tradeoff between render speed and quality.
It is now possible to set multiple styles for a layer and then easily toggle between them. This functionality is available in the
legend context menu --> styles sub-menu where it is possible to add/remove styles and quickly switch between them. Layer sets remember styles, and different styles can also be applied to individual composer map items. The multiple styles defined are also available when the project is served via QGIS Server as a WMS layer. For more information on this see also this blog post.
This feature was funded by: Regione Toscana
The user interface for data defined symbology settings has been improved - moving the data defined option next to each data definable property (in keeping with other parts of QGIS such as the labeling properties). Also many new properties have been made data definable for symbology. This user interface improvement also provides a way to immediately see if a data defined override is defined as well as easier access to the data-defined settings.
The exporter functionality for DXF files has been improved, with better fidelity of exported marker symbols to the original QGIS symbology.
This release includes preliminary support for rotation in the map canvas. You can rotate the canvas using the new rotation widget in the status bar. Rotation support has been extended into the map composer too so that it correctly handles labelling and symbology, etc.
This feature was funded by: Japan Space Imaging Corporation (JSI)
This feature was developed by: Faunalia
All dialogs now use a consistent projection selection widget, which allows for quickly selecting from recently used and standard project/QGIS projections.