QGIS

Recently, we worked on a project where the requirements were: To produce a system capable of showing MGA coordinates stored in a Microsoft Access database on a map, and teach people how to use the system.  Add to that the solution had to be low cost and capable of growing in complexity and we had ourselves an interesting project.

Quantum GIS was the solution we offered. QGIS is open source, which means it’s free to use. I do think QGIS is one of the best open source GIS programs available at the moment. Having said that, it’s still no ArcGIS or MapInfo yet.

Using the eVis plugin, Quantum GIS can read from a Microsoft Access database (and a few others too). It also is able to connect to WFS/WMS, and stream imagery from Google, Bing and Yahoo if you setup the right plugins.

OpenLayers_plugin

You can also make decent looking map templates with a little bit of effort.

Here is one I prepared earlier. J  This map shows a couple of database locations, a NearMap hypertile, and a WMS of Landgate’s roads. If that’s all you need to see, and you can teach a GIS novice how to make one pretty quickly, then I think it’s pretty good.

Blog_Map_

Our client also wanted to draw features, attribute them, and calculate areas. QGIS is pretty good at making field calculations, and really good at editing features.

Unfortunately, QGIS also has some complications. For a GIS novice, any little software hiccup is a big problem.

The first problem that arose was attempting to read the Microsoft Access Database using the eVis plugin. The database we had contained MGA Eastings & Northings. eVis can only read latitude and longitude (in decimal degrees!). So we had to create a couple of extra fields in the database, and Ben wrote a macro tool (with 200 lines of code) to convert from UTM coordinates to geographical, and populate the right fields. Ok, so after the conversion took place, we tried eVis again. Beautiful, it worked!

Database_file_selectionSo I saved my QGIS project, shut down the PC and came back in the morning. Upon opening my project, I had some strange errors jumping at me. I found out eVis does not make a dynamic connection to the database, which means any change to the tables requires a new connection to be created every time. This is probably why QGIS has a quarrel every time I open a saved project with an existing eVis layer.

Besides this problem, the eVis plugin is really quite good, and it also allows you to write predefined queries into a XML file, so the next time eVis is opened, you can choose which query and which database to open straight away. However, even when selecting a predefined query file, you still have to run the SQL query, connect to the database, and then specify which fields in the database contain the coordinates. Probably not too different to other GIS software. For our client, we needed to simplify the process down to pressing a button off the toolbar, choosing the query you want in plain English from the GUI dropdown menu, then hitting OK. Open source means we can do that. So I asked Aaron to streamline the eVis plugin. It took him about a day’s worth of work, mostly he says of setting up the development environment. But it was worth it. We now had a really easy to use tool, so the client presses a minimal number of buttons whenever they open a new QGIS session – and bang! their freshest database points are on the screen.

Points_on_mapWe always expect datasets from multiple sources in our GIS system; equally we expect the software to handle it. QGIS is still a little behind here – although it handles many file types – I noticed it had some trouble with on-the-fly projections if we streamed data from the Internet, such as Bing Roads. Such predefined street maps can look really nice as background data, so I was really keen to use them. However Bing Roads uses the Google Mercator projection and QGIS can struggle when you begin to add different datasets with different projections.

Another issue I came across was the WMS connection. If the connection parameters are not right the first time, you are better off deleting the information and creating a new one instead of editing it. It just locks up sometimes, and sometimes you need to delete the connection more than once before you have success with WMS. Once it is set up and working, then it will not complain anymore.

Add_layers_from_server

I think the project was a success because the client was happy with what was delivered, which is usually a good sign! After a brief training session, they can now venture into GIS a little more and realise what other potential requirements they might need.

The great thing is, their 8 or so new GIS users are slowly teaching themselves using simple, free software. They do not need to spend thousands of dollars on software in order to make a business decision. If and when the time comes, they can decide to purchase something more heavyweight with a bit of experience and foresight in the process.

For now, our clients can easily access their database and interrogate its information on a map. They can also create features and calculate areas. There were customisations along the way such the button to populate lat/long from grid coordinates, the streamlined database connection plugin, and creation of map templates.

Hopefully this all means that more people get into using GIS and make business decisions based on good information.

Email me directly here  or find me on twitter

Comments are closed.