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 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:
It can also show a polar chart showing relative satellite positions:
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.
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.
In the field
Here is a pic of my in car setup while testing the software:
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.
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
Hi
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.
Regards
Tim
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.
Regards
Tim
warda
Hi
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
Hi
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.
Regards
Tim
JeremyB
hello,
Is a USB version being developped at the moment ?
Thanks,
regards,
Jeremy
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.
Regards
Tim