Feature request: height/speed diagram

Sultan's picture


I'm new to GPS tracking and BT747. I got my iBlue 747A+ recently and I'm really happy there is such a good crossplatform OSS tool I can use.

Anyway, there might be a feature that BT747 not have but what would be nice to have: a diagram of hight/speed to time. The enclosing Windoze tool "GPS Photo Tagger" has such a feature (apparently - I didn't try it out: click).
Is there already such a feature in developement? If not I could make my own implementation and hand it to you.

What do you say?

mdeweerd's picture

Hi Sorry for the delay in


Sorry for the delay in responding.

I made some trials a long time ago with GUI elements allowing to draw graphs.  So thre is some unused graph code which could be used as a start.

User 'androu' (who I met in person by the way ;-) ), said he was interested in this too.  he might start on coding that part, but he might be more interested in porting BT747 to the iPhone.  The latter is a bigger - but interesting - challenge of course.

If you want to work on this you could do the development pretty independently of the rest of the code.  You could develop a 'standalone' test application where the window is the graph and where you reference the data through an interface you define (pretty much like the table model in java for instance).

That interface could be something like:

- getTrackLength(), getHeight(), getDistance(), ... .   You create your own implementation/sample data to validate the functionality and then I integrate it.

That is just a suggestion, it can be done however you want it.

Sultan's picture

Alright, I'm on it. It was my

Alright, I'm on it. It was my idea to make a small stand-alone app first to get a preview. And I'm already done with a quick'n'dirty prototype. That was really simple with a chart lib I found: jchart2d. It's not that much blown up like JFreeChart and it's LGPL.

Here is a very early first impression of it, showing a recent bicycle trip on icy streets

One of my next ideas is to append a zoom to a sub-range. Let's see how that performs...

Any other  proposals?

mdeweerd's picture

Hi That looks like a good


That looks like a good start.

If you send me your code (e-mail in the about in the application), I'll have a look to integrate it.

Kind regards


androu's picture

Great start!  What I was

Great start!  What I was hoping to do was also have the map visible, and as you scrolled over parts of the graph, the map would indicate where you were at that point with a dot and vice versa.  Probably a lot involved in that.

Zoom and subrange would be handy.  Total values for distance covered and altitude covered for subranges would also be interesting.

mdeweerd's picture

Sultan sent me his work and I

Sultan sent me his work and I integrated it in BT747 (2.X.1672)/

The functionality is not 100% perfect yet - for instance the time axis is not ok, but it can be used.

Currently, you need to do a conversion first and then Select 'Speed/Height graph (in development)' in the 'View' menu.

New conversions will not update the graph yet, so you'll need to close the graph window and open it again after a new conversion.

Creating the graph can take a few seconds and for some reason the UI does not respond during that time, so be patient.

Hello. I'm trying to generate


I'm trying to generate graph, without success.

You mention that conversion should be done at first, what kind of conversion do You mean (what kind of format)?

Are there any plans for next releases with Speed/Height graph improvements?

What kind of conversion

What kind of conversion should be done at first? What kind of output format should be selected?

I cannot generate graph.

mdeweerd's picture

Hi It works for me when I


It works for me when I first do a 'GUI' conversion and then select the graph from the 'view' menu.

Hello again and thanks for

Hello again and thanks for immediate answer.

Unfortunatelly I've tried that but still no success. Do I need to install some special java libraries for graph generation?

I use Holux M-1000C logger, convert to table in GUI and Device is HOLUX GR-245. After conversion application switches to Map tab showing the track. Then I select Speed/Height graph from view menu but with no reaction, no graph is generated (i've waited few minutes).

Can You help with that?

mdeweerd's picture

The display of the graph is

The display of the graph is immediate.

I also tried on a different system than my development setup, it works perfectly (my dev machine is win64, virtual machine is Ubuntu 12.10).

You could launch BT747 from the command line to see if any error message appears there when you try to display the graph.

Command line output Hello

Command line output

Hello again.

I've launched bt747 via cmd line and on Speed/Height chart generation I get the following error:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: info/moni
at bt747.j2se_view.BT747Main$49.run(BT747Main.java:1767)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: info.monitorenter.gui.chart.Zoomabl
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 15 more

Do I miss some class/object/library ?