#!/usr/local/bin/perl

use warnings;
use strict;

my $svgheader = qq(<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">);
my $startline = "<polyline fill=\"none\" stroke=\"black\" stroke-width=\"0.5\"\npoints=\"";
my $svg;
my @maplines;
my $currentline = 0;

if (!($ARGV[0])) { print "usage: perl mapper.pl logfile.txt\n"; exit; }

my $logfile = $ARGV[0];
 
open(LOGFILE, "<$logfile") || die "can't open $logfile!!\n";

print $svgheader;

while (<LOGFILE>) {
    if (m/You start new map line/) {
        $currentline++;
    } elsif (m/Your location is (.*?\.\d{2}), (.*?\.\d{2}), (.*?\.\d{2}).  Your/) {

        my $x = $1;
        my $y = $3;

        $x =~ s/,//g;
        $y =~ s/,//g;
        
        if ($x < 0) {
            $x = abs($x);  #  poor mans number inversion (changing neg numbers to pos, and vice versa)
        } elsif ($x > 0) {
            $x = (0 - abs($x));
        }

        $maplines[$currentline] .= "$x,$y ";
    }
}

foreach my $line (@maplines) {
    print $startline;
    print $line;
    print "\"/>\n\n";
}


print "</svg>";
