MapInfo and QGIS – An overview


Disclaimer: Like all my blog posts, this post is a reflection of my opinions and my opinions only. They do not reflect the opinions of my employer.

Recently I have got more into the open source movement, with my coding and my choice of software.  I tend to try to pick open source software for a couple of reasons, one of the main things is being free but apart from that I try to pick software that I can use to improve my development skills.  Being able to view the code is a big plus for me, being able to change and improve the software myself is an even bigger plus.

My most recent pick has been rediscovering QGIS (Quantum GIS), a free and open source GIS system written [mostly] in C++ using the Qt framework, and extensible by both Python and C++. I first discovered QGIS a couple of years ago, I was impressed but not impressed enough to really get into it. Maybe it was that I was so used to MapInfo I didn’t give it a proper look; or I didn’t really have the data in the right format, as I mainly used MapInfo, and if it couldn’t open and edit MapInfo TAB files I didn’t want to use it; or just lack of time; or whatever the reason. I used it for a day thought “Yep cool” and went back to using MapInfo.

Recently, however, they released QGIS 1.5 [and now QGIS 1.6] which changed the way I looked at the software.

The first thing I noticed was it was a lot faster in regards to map rendering then it used to be, not as fast as MapInfo but still very usable and efforts are being made to improve it even more so.

Styling of the layers has also improved a lot since I first tried it, it now has stack styling for points, lines and regions. Stack styles is something that was introduced in MapInfo 10.5, but unlike MapInfo, QGIS allows you to create a stacked style for each feature class rather than a style override like in MapInfo.  So you have a lot more control with styling in QGIS then you do in MapInfo.

QGIS styling dialogs for lines

and styles applied:

Ok not that pretty but it's a demo image.

Styling in QGIS is also only based on the underlying data of the object, think thematic maps in MapInfo.  I kind of like this, rather than just being able to just style an object you need to think about the data that is stored with an object.  This also stops the style and data getting out of sync.  At times I have seen maps made in MapInfo with no information on the object but  just styled to show different classes.

QGIS supports a large number of formats. It can open and write tab files but just not at the same time, no big deal as you can always use shape or a postgis database then just convert back if needed.

QGIS also has an interesting plugin system, while being able to use C++ and Python, the main app has a plugin installer [a plugin itself] which lets you install plugins from “hosted repositories”.  This makes finding new tools with work with very easy.

Plugin installer. Very very handy.

Composers are basically MapInfo layout windows, they allow you to add maps, legends, text labels, dynamic scale bar. attribute tables.  Composers can be exported to svg, pdf or printed just like layouts and you can have as many composers as you need.

A composer window for QGIS

Labeling options in QGIS are pretty much the same as MapInfo, if not more. You have the ability to use columns from a table that defines information about labels eg colour, X and Y etc if needed.

But one big feature that I really like about QGIS is the info tool. Unlike MapInfos info tool, you can define per table how and what information is displayed for each column and there is no stupid Ctrl+C copy bug.  It’s a bit hard to explain so a picture saves a thousand words:

Defining each how each column should be displayed.

and editing or adding a new feature:

When editing or adding features this dialog is shown.

For me as a developer the one thing that I find great with QGIS is it has a very kind and active developer community, though both IRC and email, and the code is relatively well organized .   I was able to pull down the source code for the latest trunk and have a build running in Ubuntu in under a hour [this mainly being due to my lack of Linux experience].   Being able to see something you don’t like, change it and submit it back to the project is a very good feeling.

Some downsides:

While QGIS is very good, and is always improving, it doesn’t always win over MapInfo in everything.  One major thing that MapInfo has going is its SQL, being able to run the same SQL syntax over any kind of table in MapInfo is a great feature.   QGIS, in this regard, tends to leave those things up to the underlying provider.  You are able to run simple [or complex] queries on an open table but being able to do something like “Select Col1, Col2, Col3 From Table Where Col1 = “SomeCondition” Group By Col2″  isn’t really there, although if you are running PostGIS it is quite easy.

Query
QGIS Query builder.

The next big thing MapInfo has, is MAPBASIC.  While QGIS has a built-in Python shell and has a relatively good API, MAPBASIC is very easy language to get up to speed with especially for beginners.

MapInfo also has multiple map windows, this is something that isn’t currently implemented in QGIS.  However I did bring it up on the #qgis IRC channel and the developers seemed happy with the idea but just needed time and someone to implement it.

Summary:

I could talk all day about all the cool things that QGIS can do but to save boring you I’ll leave it at this for now, more posts to come in the future I’m sure.

At the moment for my current day-to-day map work, I have gone from using MapInfo to using QGIS almost full time.  Like mentioned above, there are still some things that MapInfo does well and I tend to use MapInfo for those kind of jobs.  Also as my employer uses MapInfo and runs pretty much a full MapInfo system, I still use it for maintaining things like Exponare.  Using and developing for QGIS also means I have fallen behind on my MapInfo .Net tools, I still have a couple on the go and plan to get them out just before Christmas [or maybe a little bit after]

So my overall impressions with QGIS, if you couldn’t tell already, are: very very impressed with a very strong feeling it’s only going to get better.

So if you’re interested in trying something new, give QGIS a go.

Some handy links:

14 thoughts on “MapInfo and QGIS – An overview

  1. One feature that I do like with composers in QGIS is that you can have 2 of them looking at the same map window but centred on different locations. This makes producing maps much easier I think as in MapInfo you would have to have either a) 2 separate map and layout windows, or b) 1 map window that you move the location of depending on the map you are printing.

    1. Very true. I have used this feature a couple of times already when making some maps. If they implemented multiple map windows thing like I mentioned, it would make this feature very powerful.

      I have ran into this problem in MapInfo recently when doing a large planning project. We have about 12 small towns, each layout has 4 towns on it and each town maps is the same, same layer, different scales etc. In order to do this we had to clone the one map window 12 times and manage 12 map windows when making a change. Pretty painful.

      1. Agreed if you could have multiple map windows as well it would be really useful.

        The main problem from multiple map windows in MapInfo comes when you need to change the style of any layers that are on each map window. You have to do it in each individual window.

        We have a project at the moment with 21 sites (with more to come), and maps are made at 3 different scales per site. Instead of making separate map windows for each site and scale I have had to do the following:

        1) Create view locations in Named Views tool for each site (21 x 3).
        2) Create queries for each sites data and group them, so I can turn on and off each site in one click.
        3) Change the view using named views
        4) Save the map as a JPG.

        This way I am only dealing with 1 map window for all sites, making changes in styling much easier to implement.

        The layouts are being created by someone else in the office using InDesign as they use master layouts. There was no way I wanted to deal with a layout per map as changing any detail on a layout would have to be replicated over all the layouts. That would be a useful feature in any GIS package.

  2. A nice read on QGIS – you didn’t mention the licensing and native support for 64 bit computing, something neither MapInfo or ESRI seem interested in supporting.
    I’m keen to hear your announcement on the release of your v2.0 code wrapper for MapInfo .NET programming – how ironic is it that the day I stumble across your blog is the same day that you post this review and I am looking for info on how to connect to MapInfo from VB!!!
    Merry Christmas!

  3. Interesting read Nathan, looking forward to seeing Qgis running on Android or IPad. BTW have a look at Global Mapper, not free but very very good.

  4. Andrew

    > BTW have a look at Global Mapper, not free but very very good.

    I worked for ER Mapper for 10 years and I couldn’t agree more. Global Mapper is definitely the steal of the commercial spatial marketplace at present. Mike the developer is also so hands on that a few hours after a bug report he tends to post a patch. Unheard of service with the big chaps.

    Clive

  5. Some interesting observations Nathan. Having recently looked at QGIS for an Australian council the problem I found is it still isn’t ready yet to be a primary desktop application for an organisation. Also all of the key strengths you picked out have been in ArcView since version 8.0 was released over 10 years ago. My observation is that QGIS is working hard to replicate the ESRI desktop products and their functionality. It’s still a far way off but who knows what could happen in 5 years.

    I do agree that MapInfo still shines out with its SQL query functionality, but I still have no idea why they have never improved its map production capabilities. It has been one of MapInfo’s biggest weaknesses and hasn’t really been improved since it was first released.

    1. Very true. I find it’s a good complimentary GIS system to the big boys although I think it will overtake MapInfo in a few years. In terms of ArcView , yes, ArcView has had this stuff for a long time however it’s not free and a lot of councils or private users can’t really afford the large cost of ESRI stuff.

      I guess it also feels good to be part of something rather then just a user, but that is just my view on the open source vs non open source subject.

  6. Great post, thanks for a helpful comparison. Though I mainly use ESRI software, I learned GIS with MapInfo and still use it for several key tasks that it IMO it performs much better than ArcGIS.

    This includes geocoding. MapInfo’s geocoding engine is really great – precise, easy to configure, always gives reliable results, and the ABB file system is easy to customize. Does QGIS do geocoding out of the box? If so, how does it compare?

    Thanks!

Leave a comment