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.

Long Term Release

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.

New Features

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.

Thanks

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:

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.

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.

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.

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.

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

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.

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.

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 viewmenu, 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.

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.

It is now possible to set multiple styles for a layer and then easily toggle between them. This functionality is available in the legendcontextmenu-->stylessub-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.

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.

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.