in reply to how to access GPX data

Your "Output i'd like to have" for "Track 1" doesn't include the value from the second segment. You didn't indicate any exclusions so I've included this in my code below. I've used floating point numbers for the averages instead of integers.

my $VAR1 = [ ... ]; # Dumper output you posted (s/VAR1 = = [/VAR1 = [/ +) print qq{Average elevation\n}; for my $track (@$VAR1) { print q{ }, $track->{name}, q{ = }; my $track_ele_total = 0; my $track_ele_count = 0; for my $segment (@{$track->{segments}}) { for my $point (@{$segment->{points}}) { ++$track_ele_count; $track_ele_total += $point->{ele}; } } printf qq{%06f\n} => $track_ele_total / $track_ele_count; }

Which outputs:

Average elevation Track 1 = 69.750000 Track 2 = 61.000000

-- Ken

Replies are listed 'Best First'.
Re^2: how to access GPX data
by Anonymous Monk on May 27, 2012 at 15:28 UTC
    Ken, Thnx, this gives some more info on how to access the other fields induvidualy. No doubt that will come in handy later