#!/usr/bin/perl -w
###########################################
# tracks2yml - gpx XML to yml converter
# Mike Schilli, 2006 (m@perlmeister.com)
###########################################
use strict;
use Sysadm::Install qw(:all);

use XML::Twig;
use Date::Parse;
use YAML qw(DumpFile);

my $twig= XML::Twig->new(
    TwigHandlers => {
        "trkpt" => \&handler,
    }
);

my @points = ();
$twig->parsefile("tracks.xml");
DumpFile("tracks.yml", \@points);

###########################################
sub handler {
###########################################
    my($t, $trkpt)= @_;

    my $lat     = $trkpt->att('lat');
    my $lon     = $trkpt->att('lon');
    my $ele     = $trkpt->first_child(
                            'ele')->text();

    my $isotime = $trkpt->first_child(
                           'time')->text();
    my $time    = str2time($isotime);

    push @points, { 
        lat => $lat, lon => $lon, 
        ele => $ele, time => $time,
        isotime => $isotime,
    };
}
