What's new in this version:
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.
- 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.
Enter expressions into spin boxes:
- 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.
Bookmarks can be imported/exported:
- 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.
Improvements to expressions:
- 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
- Continuous testing framework and QA improvements:
- 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.
- Analysis tools
Measure dialog improvements:
- 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.
More responsive browser:
- 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.
Support for contextual WMS legend graphics:
- 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.
Custom prefix for joins:
- 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.
Support for creation of temporary memory layers:
- 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.
Support for calculations on selected rows:
- In the attribute table you can now do calculations on selected rows only thanks to the new button added to the field calculator bar.
Advanced digitizing tools:
- 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
- Feature: Improved simplify tool
- 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
- 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.
Show rule-based renderer’s legend as a tree:
- 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.
Composer GUI Improvements
- 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.
- Feature: Label item margins
- 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.
Python console improvements:
- 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.
New geometric predicate parameter type:
- 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
- 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
Add comment functionality to expressions:
- Comments can now be added to expressions using an SQL style -- prefix.
Custom expression function editor:
- 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.
Bulk loading spatial index:
- 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:
- The index tree should be also in theory be better constructed and may result in faster lookups.
Run only the selected part of a SQL query:
- 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 run button
Server python plugins:
- 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)
Support for layer styles:
- QGIS Server now supports predefined layer styles in GetMap requests
- QGIS Server now supports multiple styles in GetStyles request (see symbology section below)
Add DescribeLayer Method to WMS:
- 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.
Raster image fill type:
- 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.
Live heatmap renderer:
- 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.
Multiple styles per layer:
- 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 developed by: Gis3W, Lutra Consulting
More data-defined symbology settings:
- 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.
DXF export - improve marker symbol export:
- The exporter functionality for DXF files has been improved, with better fidelity of exported marker symbols to the original QGIS symbology.
- Feature: Map rotation in canvas, improved rotation in composer
- 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.
Improved/consistent projection selection:
- All dialogs now use a consistent projection selection widget, which allows for quickly selecting from recently used and standard project/QGIS projections.