QGIS turns twenty this year. I wrote the first lines of code in mid-February of 2002.
As many of you may know, the first time the code compiled and ran, it could do one thing:
- Connect to a PostGIS database and draw a vector layer.
This was the humble beginning of one of the most popular open source GIS
applications. GRASS GIS is of course the grandaddy of open source GIS, but the 20th
birthday of QGIS is a testament to its longevity and commitment of all those
who have made it what it is today.
I did an analysis of the code using cloc, which counts the lines of code and displays a summary.
QGIS has had a lot of landmark events in it’s development. Here are just a few, not necessarily in chronological order:
It compiled and ran on Linux, displaying data from a PostGIS database Successfully ported the code to Windows Successfully ported the code to Mac GRASS integration Added on the fly projection and coordinate system support Python support, allowing plugins Print composer (now layout) Installers everywhere! msi, dmg, osgeo4w, linux packages Migration of the code from CVS -> SVN - Git Processing toolbox The API-breaking migration from Python 2.
Years ago (2011), Nathan Woodrow did a visualization of code commits between QGIS 1.6 and 1.7 using Gource. I wanted to contrast the slow beginning of QGIS in 2002 with the flurry of activity in recent years.
Gource can analyze a git repository and display the activity. The video below begins with the very slow start of QGIS development in 2002. Since displaying all of QGIS activity using Gource would result in a long video no one would want to watch, I took a look at the time period from 2002 to mid-2004, then jumped to June of 2021.
Today we’ll use the qgis2web plugin to export from QGIS to Leaflet. The QGIS project, a location map for the third (in progress) Life on the Alaska Frontier novel, looks like this:
Installing qgis2web The qgis2web plugin is installed like any other. Click on the Plugins->Manage and Install Plugins... menu item, click Not installed, and then find qgis2web in the list. Click the Install plugin button to complete the install.
There’s been several posts to GIS StackExchange along the lines of:
Where’s my .qgis3 folder?
Prior to QGIS 3, the .qgis/.qgis2 folder was found under your home directory. At version 3, the folder has moved to a more standard profile location for your operating system.
There are a couple of ways to determine where the folder is located:
Use the Settings->User Profiles->Open active profile folder menu item Use QgsApplication.qgisSettingsDirPath from Python or the console Here are the “standard” locations for Linux, Mac, and Windows, as found under your HOME directory:
Well not quite destruction, but a bit of hair pulling…
While working on an update to the Plugin Builder, I encountered a small problem. The Plugin Builder displays the version number in the title bar of its main window. After bumping the version number to 1.8.4 in all the requisite places, it still showed 1.8.3 when testing.
Using grep on all the source files revealed no instance of 1.8.3 in any file.
Here’s a summary of recent additions and updates to plugins in the QGIS repository.
FlowMapper (0.1.1) - Generates flow lines between discreet nodes for depicting spatial interaction data (e.g. migration). Query By Example (0.2) - Select features by location. Item Browser (1.6.0) - Browse a multiple selection with auto-zooming to feature and an option to open feature form. Custom Launcher (1.1.0) - Customize your own actions to launch your preferred apps or commands within QGIS.
The QGIS project has a number of support channels. Like many open source projects, these are loosely coupled. Recently the forum was made read-only and this has prompted a number of questions and concerns about how to receive support. This post outlines the ways in which you can get your questions answered.
Home Page The QGIS home page has links to all the documentation and community resources. The navigation panel on the left has links to both the Community resources and the manual.
Following up on my last post, Running Scripts in the Python Console, I created a plugin to simplify running scripts:
The Script Runner plugin allows you to add your scripts to a list so they are readily available. You can then run them to automate QGIS tasks and have full access to the PyQGIS API. In addition, you can view information about the classes, methods, and functions in your module as well as browse the source:
The QGIS Python console is great for doing one-off tasks or experimenting with the API. Sometimes you might want to automate a task using a script, and do it without writing a full blown plugin. Currently QGIS does not have a way to load an arbitrary Python script and run it. Until it does, this post illustrates a way you can create a script and run it from the console.
The Plugin Builder allows you to quickly create a skeleton Python plugin by generating all that boring boilerplate that every plugin requires.
Here is a short video showing how to create, compile, and install a new plugin.
For more information, see QGIS Workshop Documentation and the PyQGIS Cookbook.
I added a simple feature that allows you to search the IRC logs from #qgis back to May 10, 2006.
The search is case sensitive and will return a list of all matches. Not too smart but it will get you close to what you want.
See the link at http://irclogs.geoapt.com/qgis
Using the git log leading up to the 1.7 release (June 2011) I put together a graphic that shows the growth of committers working on the project.
In 2002 we had two people (me alone up until October). You can see significant jumps in developer interest in 2004 and 2008:
In 2004 there were a number of releases that added significant functionality Following an announcement at FOSS4G 2007 in Victoria we released 0.
Suppose you have a DBF (.dbf) file containing X and Y values that you want to import and save as a spatial layer.
QGIS doesn’t support direct import of a DBF file as a map layer, however, we can use some command line magic to convert it to a CSV file and then use the Delimited Text plugin to get the job done.
Your DBF file should have an id for each record and fields containing X and Y values.
Writing a QGIS plugin is not overly complicated but represents a bit of work. Using git in conjunction with your development efforts can make sure your investment in coding time is preserved.
Development Tools The QGIS project team has set up a central location for plugin development which includes pretty much everything you need to develop and support your plugins, including: