I am not going to discover America by saying that the number of different plugins for QGIS is constantly growing (190 at the time of writing) and it is difficult to navigate the “Plugins” menu with a dozen or two active plugins. This issue has been raised many times at hackfests, starting with the Vienna meeting, and on the mailing lists.
Periodically, new tickets were filled: #1602, #1734, #4069. One of the results was moving fTools to the “Vector” menu (the menu is created by the module itself), soon the “native” “Raster” menu was added, and a bit later — the “Database” menu (it appears when the first plugin belonging to this menu is activated). But the vast majority of plugins, including core plugins, continued to huddle together in the “Plugins” menu and place their buttons on the corresponding toolbar.
Meanwhile, in ticket #4395, Paolo again raised the question of moving at least the core plugins into the appropriate menus. This is where it all started.
Firstly, the Offline Editing and SPIT plugins have been moved to the “Database” menu. The “Oracle GeoRaster” and “SQLAnywhere” plugins lost their menu items altogether, and their buttons were moved to the “Layers” toolbar and duplicated in the “Layers” menu. After a brief discussion with Paolo, the “repression” continued:
raster plugins have been moved to the “Raster” menu and toolbar
a “native” “Vector” menu and toolbar have been created for plugins that work with vector data. fTools and a few other core plugins have been moved there
the “Add Delimited Text Layer” plugin has been moved to the “Layers” toolbar
the “GPS Tools” have been split: one button has been moved to the “Layers” toolbar and the other to the “Vector” menu
the “Database” toolbar has been created, and the “Offline Editing” and “SPIT” plugin buttons have been moved there
new methods have been added to allow plugin developers to place their plugins in the desired location
Some plugins have not been moved anywhere yet:
eVis (“Database”?)
OpenStreetMap (a new category “Web” is proposed)
MapServer Export (a new category “Web” is proposed)
RoadGraph (probably “Vector”)
GRASS
Coordinate Capture
Diagram Overlay
So far, all this exists as a reorganise-plugins branch in my fork. The question of merging it has been raised on the mailing list. The main disadvantage (relative in my opinion) - when activating the plugin, the user will not know where exactly, in which of the 4 menus it (the plugin) will appear. One solution is to add a tag to the plugin’s metadata that specifies which section the plugin will be placed in after installation.
The 6th Quantum GIS developer meeting in Zurich (Switzerland) ended on Monday. Below are my impressions, supplemented with information from Tim’s blog.
This meeting was more “quiet” than the previous ones: the presentations were only held on the first day (but the picture and sound were very good), there were no announcements of the presentations on IRC, so it wasn’t always clear who was speaking and what the topic was.Some topics were discussed on IRC and the mailing lists, if you wanted to, you could contribute with your comments, suggestions or topics. Subjectively, there were not that many commits, partly due to the use of GIT, but still not that many changes compared to previous hackfests.
One of the main discussions was on issues related to topology support. This was facilitated by the presence of Sandro Santilli, one of the developers of GEOS and PostGIS. Topological editing has been discussed almost since the introduction of digitising support in QGIS. At the meeting, we discussed the possibility and prospects of creating a common mechanism for topological editing of different data, but in the end, we decided to keep all three existing systems (simple features, the GRASS topological model, and the PostGIS topological model). This decision was made because of the large differences in the underlying models. Of course, if someone proposes a worthy implementation of the universal mechanism, it will be gladly considered.
As QGIS has expanded from the desktop market to the web, discussions about QGIS Server and, more recently, QGIS Web Client have become an integral part of meetings. Some of the results of these discussions can be found on a dedicated wiki page.
Finally, the move to GitHub is complete: all the documentation was moved there during the hackfest. The migration was accompanied by a change in directory structure, and a description of the new workflow for translators will be published soon. There are also plans to abandon LaTeX in favour of RST (ReStructured Text), which should lower the barrier to entry for both authors and translators.
Since the preparation of new QGIS releases is quite complex and time consuming task, Tim has taken Werner on as his assistant. Tim will prepare the main releases, and Werner will do the point releases. By the way, the upcoming release 1.7.2 is his first work at this position.
As preparing new QGIS releases is a complex and time-consuming task, Tim took on Werner as his assistant. Tim will prepare the major releases and Werner will prepare the point releases. The upcoming 1.7.2 release is his first work in this position.
Strangely enough, although everyone has been talking about revising and updating the API for a long time, nothing has been broken yet (I was hoping this process would at least start at haskfest). At the same time, so much new functionality has been added that it was decided to make 1.7.2 the last release of the 1.7 series and then release 1.8.
In addition to the topics already mentioned, the following issues were also discussed to a greater or lesser extent:
QGIS on Android
performance testing and identification of bottlenecks in vector data handling
new infrastructure (wiki migration, bugtracker improvements, new plugins repository, styles repository)
revival of unit testing and the launch of the project’s Dart server
user interface optimisation and redesign for version 2.0 (1, 2)
overhaul of the QgsGeometry class (adding support for curves, splines, collections)
As for me, I was not in the mood to fix bugs, nor did I have any special plans. So I was mainly busy adding new bugs :-) by adding new tools to fTools and GdalTools.
Quite often, I have come across the question: How can I use the georeferenced rasters (raster + map file) from OziExplorer in QGIS? In order to use such data in a GIS, it is usually necessary to convert them first, e.g., with GlobalMapper. With the release of GDAL 1.7.1, there is no need for proprietary software, as GDAL now supports OZI map files.
Just three hours ago, a patch by Nathan Woodrow was added to QGIS that allows expression-based feature labelling.
Expressions support basic arithmetic operators, parentheses, string functions, type conversion functions, etc. There is also an expression builder dialogue where you can:
search functions by their names
check expression validity as you type
preview expression results in real-time
read a short description of the selected function (currently only available for some functions)
load the first 10 unique values or all field values from the context menu
Julien Malik has announced the release of a new plugin for QGIS that provides an interface to the Orfeo Toolbox tools. The new plugin is based on the Processing Framework and requires the OTB libraries and Python bindings in the system. For Windows, you can get the necessary files here. For Linux users, it is a bit more complicated, but the author promises to prepare packages for Ubuntu soon.
Over time, the list of available tools will be expanded.
As you know, GDAL 1.9 now supports ESRI ArcObjects (read only) and File Geodatabase (read and write). This means that after rebuilding QGIS with the latest version of GDAL, you will be able to work with these data sources. For Linux users, there is no need to rebuild QGIS; it is enough to make the correct symlinks.
Nathan Woodrow made another nice video showing the activity of the QGIS developers between versions 1.6 and 1.7 (1265 commits were made during this time). The spike in activity in November is a hackfest.
A few months ago, the question of integrating OSSIM into QGIS was raised. The discussion was interesting and active, the OSSIM developers even published some experimental code, but it all fizzled out.
One of the reasons, in my opinion, is that the developers of the OSSIM data provider published the code not as a normal patch but as a set of modified files. Moreover, all this was done not on the latest master but based on outdated SVN sources. Another reason is that, at the same time, we had an active discussion about a new Processing Framework, and its development started. And the possibility of integrating OSSIM through this framework was also considered.
I didn’t feel like writing a report for my contest work today, and I didn’t feel like working on an Android app either. So I decided to see what the guys from OSSIM had written. In general, it doesn’t look too bad, although there are a few questionable solutions. For example, for some reason, they invented their own class for saving settings, even though there is QgsOptions and a settings dialogue. I have tried to integrate their code into master. The results are in my fork on GitHub, branch ossim_provider. I haven’t tested it myself yet, as I haven’t found a pre-built OSSIM package, and it will take quite some time to build it on my laptop.
Giuseppe Sucameli has successfully completed his GSoC 2011 project — the DB Manager plugin for QGIS.
DB Manager combines the functionality of the PGManager, SLManager and RT_Sql_Layer plugins and supports SQLite/SpatiaLite and PostgreSQL/PostGIS databases (including raster support). With this plugin, you can:
view a list of database tables
view detailed information about the selected table
view data in tabular form and on a map
rename and delete tables using a graphical interface
execute SQL queries
drag and drop database tables (both spatial and geometryless) into your QGIS project
In addition, while working on the module, Giuseppe implemented the ability to import layers from one data source to another (commit 1a70dddca1). This allows you to easily import data from a shapefile into a PostGIS or SpatiaLite database, and vice versa. This functionality is available in both C++ and Python.