From Nottingham to PDX: QGIS 2014 roundup
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 188 | |
Author | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/31703 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Producer | ||
Production Year | 2014 | |
Production Place | Portland, Oregon, United States of America |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Cartesian coordinate systemGeometryType theoryTheory of relativityLevel (video gaming)Thread (computing)Point (geometry)Graph coloringMultilaterationGraphical user interfaceKernel (computing)Plug-in (computing)Shape (magazine)Symbol tableCategory of beingDesign by contractDatabaseFrame problemTable (information)Programmer (hardware)Point cloudRevision controlExtension (kinesiology)Enterprise architectureBuffer solutionAttribute grammarMedical imagingMobile appForm (programming)CurveFunctional (mathematics)Software developerPolygonCore dumpLetterpress printingExecution unitWeb pageElectronic mailing listLine (geometry)Serial portComputing platformMultiplicationControl flowBitMultiplication signServer (computing)Artistic renderingShift operatorGradientResultantRule of inferenceTransformation (genetics)Address spaceMereologyProjective planeMorley's categoricity theoremParity (mathematics)ExpressionConfiguration spaceSelectivity (electronic)Self-organizationDifferent (Kate Ryan album)Raster graphicsVector spaceUnit testingFile formatLogicCodeInsertion lossRegular graphCode refactoringInverter (logic gate)Object (grammar)Forcing (mathematics)Element (mathematics)Statistical hypothesis testingZoom lensData managementWordGame controllerUsabilityMappingLocal ringMathematicsBuildingSource codeAdditionNumberArithmetic meanImplementationField (computer science)Pattern languageBranch (computer science)Sound effectError messageLattice (order)OntologyGraph (mathematics)RotationRight angleSurfaceDecision theoryCovering spaceState of matterCollisionDemo (music)Information privacySoftwareBasis <Mathematik>Alpha (investment)Asynchronous Transfer ModeInstance (computer science)WindowWritingSign (mathematics)Default (computer science)MassInterface (computing)Power (physics)Computer configurationComputer programmingNetwork topologyMatching (graph theory)PixelCASE <Informatik>Data conversionFreewareGroup actionCycle (graph theory)Limit (category theory)Open sourceGoodness of fitFeasibility studySocial classSimilarity (geometry)Physical systemService-oriented architecturePeer-to-peerRectangleInheritance (object-oriented programming)
Transcript: English(auto-generated)
00:00
I think we're ready to start. Welcome to my second talk. There were some new people coming in. It's now about QGIS desktop. And it's a roundup what happened last year, within one year, with QGIS.
00:20
I repeat again my introduction. My name is Biermann Kalberer. For those who come in later, I work for Sourcepol, which is a company doing development, QGIS core development, and doing plug-in development for customers. And we are providing support contracts for QGIS.
00:41
And within the QGIS enterprise program, and we have QGIS cloud as a publication platform on the web. What is QGIS? I think that should be better known than QGIS server.
01:01
It is, in the meantime, a full-featured desktop QGIS. It has support for many formats, raster databases, database-based and file-based, and raster and vectors. It has an API for Python, plug-ins, and also
01:22
for C++ plug-ins. It is very customizable. So you can cut it down into a minimal version, as you like. It has all the server part, which I talked in the last half an hour, which
01:40
is providing the same maps as WMS, WFS, and WFST. And it supports Windows, Linux, and Mac OS. And it is open source, which means you have full control over your software. But you have to take care of it, as you learned in the morning.
02:05
One word about the organization. It is an OSGEO project, which has a project steering committee. Gary Sherman, the founder of QGIS, is the chair. And what happened last year is that the steering committee
02:22
became three additional members, which is Anita Grauser from Austria, which is responsible for the design decisions, Richard Duyvenvordy from Netherlands, which is managing the infrastructure, and Jurgen Flicher from Germany, who is the new release manager.
02:45
Before him, Tim Sutton from South Africa was the release manager, and he is now responsible for testing in QA. Last Force 4G, which was in Nottingham,
03:02
we released QGIS 2.0, which was really a major release after a long time of development with many new features and changes in the interface, and also a new API, or a change in the API,
03:23
which made it more Pythonic. So took some work to convert or to migrate the plugins, but it's well established now. We also changed the release cycle,
03:43
because before that, we had some releases within months, and then we had no release for more than one year. So it was very uncertain when the next release is coming. And so we decided to have a fixed cycle, which
04:04
is three releases per year. Means every four months, you have a release. And this happened this year. In February, we had QGIS 2.2. And in June, 2.4.
04:21
The even numbers are for public releases and the odd numbers. So now it's 2.5 is the developer version, which is also downloadable as a nightly build. But the next one will be 2.6, which will be a public release coming in October.
04:41
And my talk today is about these two versions, what was added in 2.2 and 2.4. And it has to be a selection to fit into the time. So I will have to hurry through the changes.
05:04
We have some policy enhancements, the field types. We already had many field types, line patterns, point patterns. We have yet an additional field type. It's the SVG field type. And we have centroid fill, gradient fill,
05:20
and shaper fill. And first about this gradient type fill. There we have either two colors, the start color and the end color. Or we have defined ramp.
05:42
It can be radial, linear, or conical, upper-based or object-based, and supports data-defined properties. Another thing was shape burst support, which means that's a gradient which follows a shape.
06:03
I have an example later. It also supports two colors or a ramp. It can have alpha channel. It can change from border to center point or only within a buffer.
06:23
It can ignore holes and also supports data-defined properties. That's an example how it looks like. Oh, no, that's the next thing. But you will see it in a later picture. That's the in-stroke feature for polygons.
06:45
On the top level, you see a picture with regular colors following a polygon border, which gives mixed colors if you have different colors for different polygons.
07:04
And on the picture, on the downside, there is this checkbox activated. And it's only drawn within the polygons. So you can see on the borders with different colors, you can see both colors.
07:22
That's this in-stroke support. The next thing is the inverted polygon renderer, which shows like it does follow the polygon
07:41
but does draw outside of the polygon. So you can show selected features and improve that visibility. It is very useful for serial printing.
08:02
For instance, if you have many objects or many features you want to print separately, you can cut them out with this inverted polygon renderer so that you don't see the things around them. Here is an example of this inverted polygon renderer with a shape burst.
08:23
So we have a shape burst outside of this middle polygon, which gives a nice effect for highlighting a feature.
08:44
Next thing, there is now support for configurable anchor points or anchors for point symbols. Before that, a point symbol was always centered.
09:01
And now you can define where the point symbol should be placed. So if you think of a flag, for instance, center is not the best way to place it. So you can now place it on the downside.
09:25
They can also grow up if you have scalable symbols. Another new thing are marker line offsets. You can now define an offset where
09:41
you want to place a marker. So if you have the geometry, the markers are not directly placed on geometry but with a certain offset, which can be map units or can be pixels.
10:04
Another feature is expression-based categorization. So down there we have an expression which gives us a result, a value on which the categorization is
10:21
based on. So this is a very powerful feature. And it can be much simpler than before where you had to add many rules for achieving the same result.
10:41
Another extension to this rule-based renderer is the else rule. So you can have now a loss rule, which is the else rule, which is applied when all other rules didn't match. It does also make it even more similar to the SLD logic.
11:02
So SLD import and export is feasible and is implemented. So it is really possible to create SLDs with QGs or import SLDs because it's a very similar rule logic.
11:25
Then we had many label improvements. We had speed improvements. And one thing, lines can now have labels which are repeated.
11:42
That's very useful. Next thing, print composer. There has been many improvements in the print composer. Usability things, you can do more with mouse.
12:01
You have two possibilities with mouse wheel and rectangles, zoom to actual size. You can rotate now all elements in a print layout. And you can also style the canvas. So you cannot only have a white background,
12:23
but you can have SVG style in the background, which gives nice possibilities. We have new preview functionality. One is a grayscale preview to see how it looks like on a black-white printer
12:43
and also color blindness preview. Then additional functionality with pictures. The data source can now have expressions, which means you can use an attribute for naming
13:03
the picture or addressing the picture, which would be displayed and printed. Alignment functionality, sizing modes, and page breaks in HTML frames. So you can have now legends or texts
13:21
which go over multiple pages with breaks in the HTML frames. Also in print composer is serial printing functionality, which is called Atlas.
13:40
It was previously a plug-in, and now it is included. We have now an Atlas preview in the composer. So you can see, you can have a look how the pages in Atlas printing look like. You can address map styles with a new variable
14:03
and more functionality for Atlas serial printing. Another thing, a little interesting thing is you can now quickly calculate something or put an expression directly into the attribute table.
14:24
That's this toolbar there where you can put in an expression. And you see the result directly in the table below.
14:42
Very handy. Then there are more expression improvements. We have a list in expression dialogue. We have a list of recent used expressions. And as mentioned before, we have new expressions
15:00
for print composer and Atlas. Another thing are forms and relations. So if you identify a feature or click on a feature in QGIS, you get either this feature dialogue
15:20
or this attribute dialogue, or you can have forms which are automatically created in other ways. And new in these forms is that you can have relations within them. So if you have a form for a table, you can have a relation to another database table
15:41
and embed this in the form. That can be a subform, or it can be opened as a separate dialogue.
16:02
It is possible. It is a little bit confusing because there's also the joints. And this is not joint. This is really only for forms. You don't have to do joint tables.
16:20
That's for editing forms. Edit forms. Then an important functionality is support for configurable datum transformations. So if you work with different coordinate systems,
16:44
you can now define how this date transformation is done. Because there are often multiple possibilities. And it also supports NTV2 grid shift transformations,
17:02
where you can define your own transformation and use this for date transformation. You can also disable this dialogue or that it is only asked once. And if you have always the same projection systems,
17:23
then usually you always use the same datum transformation. Next thing is DxF support. DxF was supported for a long time.
17:43
It was previously supported only via OGR. But this limits the possibilities especially for DxF export, because DxF is not really a GIS format.
18:00
It has more. It has a symbology and much more, which is hard to transfer via OGR. So we implemented native export functionality, which also exports labels and exports as much symbology as possible. It is based on a little bit older version,
18:22
the last well-documented version of DxF. So there might be some new support for new versions in the future. Then under the hood, we had refactoring
18:42
of the whole legend code with API redesign, which makes it now possible for plugins to access the legend much more easily than before. And you can do more with the legend from plugins. And the unit test has been extended as well.
19:06
And also under the hood, but also visible, is the multi-threaded rendering, which was introduced in 2.4. Before that, rendering was done in the main thread,
19:21
the GUI thread, and the application was blocked as long as the rendering went on. Now each layer is rendered separately in its own thread and can be canceled. And you don't have to wait until the whole map has
19:41
been rendered. I have a short demo for that. Where is it?
20:03
OK, now project is loaded. This is now without. This is the single-threaded rendering. It was many labels to show the difference.
20:24
Now you have the waiting cursor. So this is with single-threaded rendering. So you have to wait until the whole image is rendered.
20:44
And now multi-threaded rendering is turned on. This is not QGIS 2.4, so it doesn't look exactly the same, but it is the same functionality. And now you see the rendering happening incrementally.
21:02
And you can pan around, and now the labels appear.
21:20
So it's not really faster than before, but it's much more responsive than before. So you can zoom around. You can search the extent you want to see it. And you want to see, and you don't have to wait until the whole map is rendered.
21:42
So this is really a big improvement. And yeah, since many redrawings happen in QGIS desktop, this is really important that you don't have to wait each time.
22:10
And it's also very useful if you have slow layers like WMS in the background that you don't have to wait for them.
22:21
That's multi-threaded rendering. I think it's turned on by default, as far as I remember. Or maybe you have to turn on. So that was my overview of the new features. I finish with a list of people to thank for these features.
22:44
There are a list of developers who add this new functionality that's not a complete list. I see, Larry, maybe I forgot you. And I forgot maybe others. But they've implemented the main functionality.
23:04
And I also want to thank organizations who financed this functionality, who paid these developers for doing that. It's the SwissQGIS user group, Swiss cities, and three candidates from Switzerland,
23:23
then L'Arrançe de l'Or, two Caron French agency, and some parts and print composer were financed by the World Bank. And we have many QG sponsors which didn't pay for a certain feature,
23:40
but pay to the project. And some Americans here, I suppose, so there is room for non-European sponsors. As you see in the list, it's very Swiss or European centric. So this could be your chance to add the features
24:02
you want in QGIS. I have a short outlook. What already happened in 2.5 is the refactoring of the legend code is merged now with more functionality
24:22
for legends. There's also an experimental Qt5 compatibility branch, which could be very interesting for mobile applications. There is a contribution for local spatial support for the DB Manager. And there is an experimental branch with Python support
24:42
in Qt server. Next thing is what's in the work is a new geometry kernel. We started working on a new implementation of a geometry kernel which has 3D support, 3D and XYZM. It is still compatible with the current kernel.
25:04
And it has extensible geometry types. And one important type we add right now is support for curves. So it's ESO curves as post JS supports. And these curves from post JS can be displayed.
25:23
And we will have editing tools to digitize curves. There will be a first pre-release in this year, end of year. And the final release will be in 2050. I hope that it will be in version 2.8.
25:45
Other new features can be contributed or you hire a programmer or a company to implement what is missing in your opinion. And yeah, that was my overview for QGIS desktop.
26:05
Thank you for your attention.