Posted by & filed under QGIS.

Marco Hugentobler and I have been working on integrating C++ based GPS integration into QGIS core.

New functionality

There are two parts:

– a gps background process implemented by Marco that communicates with a GPS and extracts nmea strings and then propogates them to any listing classes
– a user interface, implemented by myself, as a dock panel that shows position, signal strength bar chart, satellite polar chart, options

Similar to Martin Dobias’s GPS project, the GPS ui can be used to capture features (and attributes using the normal attribute dialog mechanism). The ui part uses Qwt for the charting functions.

How is it used?

– Add any reference layers to your project (e.g. satellite imagery backdrop)
– Create or add zero or more vector layers (lines, points, polygons) and enable editing
– Connect the GPS via a serial port (our test systems use serial to usb adaptors)
– Tick the auto-add vertices box in the options pane for easy use
– Now get on the train / bus / car :-)

As you drive along, focus one of your vector layers, and click the Add feature button.

If it’s a point layer a new point will be added, the add attribute dialog will appear and the track will not be destroyed.
If it’s a line layer (should work with poly too, I didn’t test yet), the add dialog will appear and after closing it the feature is added to your dataset and the track will be destroyed – ready to start creating the next feature.

For more control of the vertices assignment you can disable auto-add vertices and click the add vertex button when you want a vertex. Here is what the main panel looks like with auto-add vertices disabled.

The main display after your device is connected,

The Add Vertex button hides when auto add vertex check box is enabled. The add vertex and add feature buttons grow to use all available vertical space to make them easier targets to hit when trying to operate the laptop in a moving vehicle.

The track marker rubber band colour can be specified making it easier to see (e.g. on dark reference maps you can set the track marker to a light colour). For similar reasons, the rubber band width can be specified.

The reset feature button next to the Add feature button is there so that you can discard collected track data if you want to start your feature from your current location rather than your last saved feature’s end.

Other features

The tool can show a simple histogram showing signal strength:

Signal strength graph

It can also show a polar chart showing relative satellite positions:

Satellite position graph

An options panel allows you to specify your device port and various other choices. The map can be panned to be always centered on the GPS position, or recenter when the GPS cursor will leave the current view extents (so minimising refreshing), or never following the GPS. This panel is also where you specify the track width and colour.

GPS capture tool options

When you click the Add feature button, the normal attribute dialog mechanism is invoked allowing you to capture attribute data for your feature. Here is a screen shot showing point capture.

Capturing  a point feature.

In the field

Here is a pic of my in car setup while testing the software:

In car navigation

Note that the dog is still learning to operate the laptop so at the moment I keep her responsible for looking out the window for points of interest.

  • Pingback: GIS-Lab Blog» Архив блога » Новости вокруг

  • j03lar50n

    Tim- I am very excited about this! A big thanks to you and Marco!! I tried getting this new functionality to work for me with my OSGeo4W install – but had no luck. Tried a Garmin 60CSx via USB connection and a Garmin GPS PlusIII via Serial connection.

    What would be the best way to facilitate/contribute to testing, debugging, etc. to get Live GPS going with Windows? I work for a local government fire department and would like to use this with Panasonic Toughbooks – all users are using the Windows OS.

    • Tim Sutton


      Juergen updated the serial port drivers last night. Could you try again with a fresh nightly build from osgeo4w? We will start to compile a list of tested devices and operating systems to make it easier for folks. Note also that only serial connections are supported (e.g. using a serial to usb adapter) at this time.



  • Pingback: Linfiniti Geo Blog » Blog Archive » Reflecting on a month of internships at

  • lutra

    Hi Tim, does this work with usb devices (ubder linux)? I have a Garmin usb unit that works out of the box with the standard QGIS gps tools, but I’m struggling to connect the same unit to the gps tracker tool. Thanks in advance.

    • Tim Sutton

      Hi Giovanni

      I havent been able to test it with a USB device since I have only a serial based modem. I believe it should be possible but would need to get a test unit to know for sure.



  • warda


    how can this real time updating values of longitude and latitude can be stored in a database with a defined polling time (let it be 10sec).the database shud query the qgis after every 10 sec to update its longitude/latitude value if changed.plz help.

    • Tim Sutton


      Currently this is not supported with what we have implemented so far. It is something you could probably add with a little programming work without too much effort though.



  • JeremyB


    Is a USB version being developped at the moment ?



    • Tim Sutton

      USB is already supported. Please enquire on the QGIS mailing list if you are trying to identify a specific GPS that will work.



  • Roberto Montagnetti

    Hi, I would use my garmin 62 stc to make Live tracking with Qgis.

    However connecting my Garmin GPS Tracker tool to Qgis via USB and click on “Connect”, I always say “Can not connect to GPS”.
    I also tried to set up my garmin mode interface “Spanner” but I still can not connect.
    I would be grateful if you could tell me how to do