From Nottingham to PDX: QGIS 2014 roundup
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.
Kalberer, Pirmin
Following the long awaited QGIS 2 release, announced at FOSS4G 2013 in Nottingham, the project decided to switch to a regular release cycle with three versions per year. QGIS 2.2 was the first release in this cycle and already packed with many new features like 1:n relations, gradient fills, native DXF export and NTv2 datum transformations to name a few. QGIS 2.4, released in June, has one major extension in its core: multithreaded rendering. Originally developed as a Google Summer of Code project, it makes a big difference in the responsiveness of QGIS desktop.This talk shows a selection of the latest features and gives an outlook what's in the works for QGIS 2.6. Some interesting plugins and other news from the community will keep you up to date with the high pace of this OSGeo project.
 I think we're ready to start. Welcome to my second talk. There were some new people coming in. It's now about Qtis desktop and it's a roundup what happened last year or within one year with Qtis. I repeat again my introduction. My name is Birgit Mancalber. For those who come in later, I work for SourcePool, which is a company doing the Qtis code development and doing plug-in development for customers and we're providing support contracts for Qtis and within the Qtis enterprise program and we have Qtis cloud as a publication platform on the web. What is Qtis? I think that should be better known than Qtis server. It is in the meantime a full-featured desktop GIS. It has support for many formats, roster databases, database based and file based and roster and vectors. It has an API for Python plugins and also for C++ plugins. It is very customizable so you can cut it down to a minimal version as you like. It has also a server part which I talked in the last half an hour which 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. One word about the organization. There is an OSGO project which has a project steering committee. Gary Sherman, the founder of Qtis is the chair and what happened last year is that the steering committee became three additional members which is Anita Grausel from Austria which is responsible for design decisions. Richie Duvenvoldi from Netherlands which is managing the infrastructure and Jurgen Friescher from Germany who is the new release manager. Before him, Tim Sutton from South Africa was the release manager and he is now responsible for testing and QA. Last force for G which was in Nottingham. We released Qtis 2.0 which was really a major release with 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 which made it more pytonic. So took some work to convert or to migrate the plugins but it's well established now. We also changed the release cycle because we had 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 is three releases per year means every four months you have a release. So and this happened this year in February we had Qtis 2.2 and in June 2.4. 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 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. 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 is the SVG field type and we have centroid field, gradient field and shapers field. First about this gradient type field there we have either two colors the start color and the end color or we have a defined ramp that it can be radial linear or conical, upper-paste or object-based and supports data defined properties. Another thing was shapers support which means that's a gradient which follows the shape. I have an example later it also supports two colors or a ramp, it has can have alpha channel, it can change from border to center, point or only within a buffer, 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. 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 and on the picture down side there is this checkbox activated and it's only drawn within the polygon so you can see on the borders with different colors you can see both colors. That's this inner stroke support. The next thing is the inverted polygon renderer which shows like it does follow the polygon but does draw outside of the polygon so you can show selected features and improve that visibility. It is very useful for serial printing 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 so you have a shape burst outside of this middle polygon which gives a nice effect for highlighting a feature. Next thing there is now support for configurable anchor points or anchors for point symbols. Before that a point symbol was also centered always centered 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. They can also grow up with you have scalable symbols. Another new thing are marker line offsets. You can now define an offset where you want to place a marker so if you have the geometry the markers are not directly placed on the geometry but with a certain offset. It can be map units or can be pixels. Another feature is expression based categorization so down there you have an expression which gives as a result a value on which the categorization is based on so this is a very powerful feature and can be much simpler than before where you had to add many rules for achieving the same result. Another extension to this rule based render is the else rule so you can have now a last 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 so SLD import and export is feasible and is implemented so it is really possible to create SLDs with QJs or import SLDs because it's a very similar rule logic. Then we had many label improvements, we had speed improvements and one thing lines can now have labels which are repeated. That's very useful. Next in print composer there has been many improvements in the print composer. Usability things you can do more with mouse, you have zoom 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 can have not only have a wide background 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 gray, on a black white printer 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 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 which go over multiple pages with breaks in the HTML frames. Also in print composer is zero printing functionality which is called Atlas. It was previously a plugin 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 and more functionality for Atlas zero printing. Another thing, a little interesting thing is you can now quickly calculate something or put an expression directly into the attribute table. That's this toolbar there where you can put in an expression and you see the result directly in the table below. Very handy. Then there are more expression improvements. We have a list in expression dialogue. We have a list of recent, recently used expressions and as mentioned before we have new expressions 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 or this attribute dialogue or you can have forms which are automatically created or in other ways and new in this 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 and embed this in the form. That can be a subform or it can be opened as a separate dialogue. 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. That's for editing forms. Then an important functionality is support for configurable data transformations. If you have, you have worked with different coordinate systems, you can now define how this data transformation is done because there are often multiple possibilities and it also supports NTV2 grid shift transformations where you can define your own transformation and use this for data transformation. You can also disable this dialogue or that it is only asked once and if you have always the same projection systems then usually you have, you always use the same data transformation. Next thing is takesF support. TakesF was supported for a long time. It was previously supported only via OGR but this is, this limits the possibilities for, especially for takesF export because takesF is not really a GIS format. It has more, it has a symbology and much more which is hard to transfer via OGR. We implemented a native export functionality which also exports labels and exports as much symbology as possible. It is based on a little bit older version that late, the last well-documented version of takesF so there might be some new support for new versions in the future. Then under the hood we had a refactoring 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. And also under hood but also visible is the multi-threaded rendering which was introduced in 2.4. Before that, rendering was done in the main thread, the GUI thread and the application was blocked as long as rendering went on and 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 been rendered. I have a short demo for that. Very good. Okay now project is loaded. This is now without, this is the single thread of rendering with many labels to show the difference. Now you have to wait in cursor. So this is with single threaded rendering so you have to wait until the whole image is rendered. 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 and you can pan around. And now the labels appear. So it's not really faster than before but it's much more responsive than before. So you can zoom around, you can search your extent you want to see it and you want to see it and you don't have to wait until the whole map is rendered. 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. 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. 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 finished with a list of people to thank for these features. 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 and I also want to thank organizations who financed this functionality, who paid developers for doing that. The QGIS user group, Swiss cities and three cantons from Switzerland, then L'Agence de l'Aux, a French agency and some parts and print compos were financed by the World Bank and we have many QGIS sponsors which didn't pay for a certain feature 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 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 for legends. There's also 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 in QGIS server. Next thing is what's in the work is a new geometric kernel. It starts with working on a new implementation of a geometric kernel which has 3D support, 3D and XYZM. It is still compatible with the current kernel and it has extensible geometry types. One important type we add right now is support for curves. So it's easy curves as PostJS supports and these curves from PostJS can be displayed and we will have editing tools to digitize curves. There will be a first previews in this year and a year and the final release will be 2050. I hope that it will be in version 2.8. 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 of QGIS desktop. Thank you for your attention.
 I think we're ready to start. Welcome to my second talk. There were some new people  coming in. It's now about Qtis desktop and it's a roundup what happened last year  or within one year with Qtis. I repeat again my introduction. My name is  Birgit Mancalber. For those who come in later, I work for SourcePool, which is a  company doing the Qtis code development and doing plug-in development for  customers and we're providing support contracts for Qtis and within the Qtis  enterprise program and we have Qtis cloud as a publication platform on the web.  What is Qtis? I think that should be better known than Qtis server. It is in the  meantime a full-featured desktop GIS. It has support for many formats, roster  databases, database based and file based and roster and vectors. It has an API  for Python plugins and also for C++ plugins. It is very customizable so you  can cut it down to a minimal version as you like. It has also a server part which  I talked in the last half an hour which 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. One word about the organization. There is an OSGO  project which has a project steering committee. Gary Sherman, the founder of  Qtis is the chair and what happened last year is that the steering committee  became three additional members which is Anita Grausel from Austria which is  responsible for design decisions. Richie Duvenvoldi from Netherlands which is  managing the infrastructure and Jurgen Friescher from Germany who is the new  release manager. Before him, Tim Sutton from South Africa was the release  manager and he is now responsible for testing and QA. Last force for G which  was in Nottingham. We released Qtis 2.0 which was really a major release with  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 which made it more  pytonic. So took some work to convert or to migrate the plugins but it's well  established now. We also changed the release cycle because we had 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 is three releases per year means every four  months you have a release. So and this happened this year in February we had  Qtis 2.2 and in June 2.4. 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 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. 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 is the SVG field type and we have centroid  field, gradient field and shapers field. First about this gradient type field  there we have either two colors the start color and the end color or we have  a defined ramp that it can be radial linear or conical, upper-paste or object-based  and supports data defined properties. Another thing was shapers support which  means that's a gradient which follows the shape. I have an example later it  also supports two colors or a ramp, it has can have alpha channel, it can  change from border to center, point or only within a buffer, 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. 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 and on the picture down side  there is this checkbox activated and it's only drawn within the polygon so you  can see on the borders with different colors you can see both colors. That's  this inner stroke support. The next thing is the inverted polygon renderer which  shows like it does follow the polygon but does draw outside of the polygon so you  can show selected features and improve that visibility. It is very useful for  serial printing 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 so you have a shape burst outside of this  middle polygon which gives a nice effect for highlighting a feature. Next thing  there is now support for configurable anchor points or anchors for point  symbols. Before that a point symbol was also centered always centered 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. They can also grow up with you have scalable symbols. Another  new thing are marker line offsets. You can now define an offset where you want  to place a marker so if you have the geometry the markers are not directly  placed on the geometry but with a certain offset. It can be map units or can be  pixels. Another feature is expression based categorization so down there you  have an expression which gives as a result a value on which the categorization  is based on so this is a very powerful feature and can be much simpler than  before where you had to add many rules for achieving the same result.  Another extension to this rule based render is the else rule so you can  have now a last 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 so  SLD import and export is feasible and is implemented so it is really possible to  create SLDs with QJs or import SLDs because it's a very similar rule logic.  Then we had many label improvements, we had speed improvements and one thing  lines can now have labels which are repeated. That's very useful.  Next in print composer there has been many improvements in the print composer.  Usability things you can do more with mouse, you have zoom 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 can have  not only have a wide background 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 gray, on a black white printer  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 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 which go over multiple pages with breaks in  the HTML frames. Also in print composer is zero printing functionality which  is called Atlas. It was previously a plugin 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 and more functionality for Atlas zero printing. Another thing, a little  interesting thing is you can now quickly calculate something or put an  expression directly into the attribute table. That's this toolbar there where you  can put in an expression and you see the result directly in the table below.  Very handy.  Then there are more expression improvements. We have a list in expression  dialogue. We have a list of recent, recently used expressions and as mentioned  before we have new expressions 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 or this attribute dialogue or you can have  forms which are automatically created or in other ways and new in this 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 and embed this in the form. That can be  a subform or it can be opened as a separate dialogue.  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. That's  for editing forms. Then an important functionality is support for configurable  data transformations. If you have, you have worked with different coordinate  systems, you can now define how this data transformation is done because there are  often multiple possibilities and it also supports NTV2 grid shift transformations  where you can define your own transformation and use this for data  transformation. You can also disable this dialogue or that it is only asked once  and if you have always the same projection systems then usually you have,  you always use the same data transformation.  Next thing is takesF support. TakesF was supported for a long time. It was  previously supported only via OGR but this is, this limits the possibilities  for, especially for takesF export because takesF is not really a GIS format. It has  more, it has a symbology and much more which is hard to transfer via OGR. We  implemented a native export functionality which also exports labels and exports as  much symbology as possible. It is based on a little bit older version that late, the  last well-documented version of takesF so there might be some new support for  new versions in the future. Then under the hood we had a refactoring 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. And also under  hood but also visible is the multi-threaded rendering which was introduced in 2.4.  Before that, rendering was done in the main thread, the GUI thread and the  application was blocked as long as rendering went on and 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 been rendered. I have a short demo for that.  Very good.  Okay now project is loaded. This is now without, this is the single thread of  rendering with many labels to show the difference. Now you have to wait in cursor.  So this is with single threaded rendering so you have to wait until the whole  image is rendered. 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 and you can pan around.  And now the labels appear. So it's not really faster than before but it's much  more responsive than before. So you can zoom around, you can search your  extent you want to see it and you want to see it and you don't have to wait  until the whole map is rendered. 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.  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. 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 finished with a list of people  to thank for these features. 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 and I  also want to thank organizations who financed this functionality, who paid  developers for doing that. The QGIS user group, Swiss cities and three  cantons from Switzerland, then L'Agence de l'Aux, a French agency and some parts  and print compos were financed by the World Bank and we have many QGIS  sponsors which didn't pay for a certain feature 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 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 for legends. There's also 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 in QGIS server. Next thing is what's in  the work is a new geometric kernel. It starts with working on a new  implementation of a geometric kernel which has 3D support, 3D and XYZM. It is  still compatible with the current kernel and it has extensible geometry types.  One important type we add right now is support for curves. So it's easy curves  as PostJS supports and these curves from PostJS can be displayed and we will  have editing tools to digitize curves. There will be a first  previews in this year and a year and the final release will be 2050. I hope that  it will be in version 2.8. 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 of QGIS desktop. Thank you for your  attention.
05_Pirmin_Kalbere_720p_0_107.png 05_Pirmin_Kalbere_720p_108_4367.png 05_Pirmin_Kalbere_720p_4368_10763.png 05_Pirmin_Kalbere_720p_10764_29771.png 05_Pirmin_Kalbere_720p_29772_29831.png 05_Pirmin_Kalbere_720p_29832_29879.png 05_Pirmin_Kalbere_720p_29880_29975.png 05_Pirmin_Kalbere_720p_29976_30059.png 05_Pirmin_Kalbere_720p_30060_30167.png 05_Pirmin_Kalbere_720p_30168_30371.png 05_Pirmin_Kalbere_720p_30372_30527.png 05_Pirmin_Kalbere_720p_30528_30779.png 05_Pirmin_Kalbere_720p_30780_30947.png 05_Pirmin_Kalbere_720p_30948_31187.png 05_Pirmin_Kalbere_720p_31188_31367.png 05_Pirmin_Kalbere_720p_31368_31499.png 05_Pirmin_Kalbere_720p_31500_31547.png 05_Pirmin_Kalbere_720p_31548_31595.png 05_Pirmin_Kalbere_720p_31596_31655.png 05_Pirmin_Kalbere_720p_31656_31703.png 05_Pirmin_Kalbere_720p_31704_31955.png 05_Pirmin_Kalbere_720p_31956_32003.png 05_Pirmin_Kalbere_720p_32004_32051.png 05_Pirmin_Kalbere_720p_32052_32099.png 05_Pirmin_Kalbere_720p_32100_32255.png 05_Pirmin_Kalbere_720p_32256_32303.png 05_Pirmin_Kalbere_720p_32304_32363.png 05_Pirmin_Kalbere_720p_32364_32567.png 05_Pirmin_Kalbere_720p_32568_32639.png 05_Pirmin_Kalbere_720p_32640_32699.png 05_Pirmin_Kalbere_720p_32700_32759.png 05_Pirmin_Kalbere_720p_32760_32915.png 05_Pirmin_Kalbere_720p_32916_33335.png 05_Pirmin_Kalbere_720p_33336_33407.png 05_Pirmin_Kalbere_720p_33408_34427.png 05_Pirmin_Kalbere_720p_34428_39023.png 05_Pirmin_Kalbere_720p_39024_39239.png 05_Pirmin_Kalbere_720p_39240_39255.png