May 5th 2014, 3D Track Visualization

May 5th 2014 PING Revisited | | May 6th 2014 Android Deployment with Qt 5

But before we continue with Android, let’s see what has changed on the visualization back end. To visualize the transmitted geolocations we need support to view them in 3D. This has been added to the libMini visualization core. It now incorporates a continuous level of detail (c-lod) decimation scheme for the points of the displayed track, so that the thousands of points that will accumulate over time will not result in a visualization slow-down. This is achieved by dropping points that have little contribution to visual appearance, that is geo locations that are either very far away from the view point or have small path curvature. This brings down the point count to a couple of thousand visible points, in contrast to the many ten thousands or even millions of originally recorded track points.

The mentioned c-lod algorithm is part of the libmini scene-graph. Each path is represented as a c-lod path node (mininode_path_clod node) of the libMini scene graph, which displays the world in mother earth’s geo-referenced ECEF coordinate system.

A variety of loaders for common path data formats (such as CSV, GPX and TRK) have been developed as well. The track loader also detects points that have poor recording quality and removes them if they degrade the track appearance.

Here is what a couple of paths (recorded with Google’s MyTracks Android app) look like, when imported into the QTViewer of libmini:

Track1 Track2

A track in the CSV or GPX format can just be dropped into the QTViewer to show it in 3D. The track speed is displayed by color mapping (blue=lo red=hi speed). To account for the perspective foreshortening of a track, the width of the tracks also adapts to the distance to the eye point, so that the entire track appears equally sized.

Now we get back to Android to write our own track recording app as a replacement for Google’s MyTracks app.

May 5th 2014 PING Revisited | | May 6th 2014 Android Deployment with Qt 5