--- bin/nmea2kml.pl 2007/12/03 19:16:55 19 +++ bin/nmea2kml.pl 2007/12/03 20:52:33 20 @@ -10,9 +10,17 @@ my $path = shift @ARGV || die "usage: $0 nmea_dump.gps\n"; +my $individual_placemarks = 0; + open(my $fh, '<', $path) || die "can't open $path: $!"; -print qq{ +my $out_path = $path; +$out_path =~ s!^.*?([^/]+)\.[^/]+$!$1!; #! +$out_path .= '.kml'; + +open(my $out, '>', $out_path) || die "can't open $out_path: $!"; + +print $out qq{ $path @@ -20,6 +28,14 @@ NMEA trace }; +print $out qq{ + + $path + + 1 + relativeToGround + +} unless $individual_placemarks; my $point = 0; @@ -28,23 +44,35 @@ $point++; - print qq{ - - $point - - }, join(' ', map { ucfirst($_) . ':' . $hash->{$_} } ( qw/time lat lon speed course date var var_ew/ ) ), qq{ - - - }, $hash->{lon}, ',', $hash->{lat}, qq{,0 - - - }; + if ( $individual_placemarks ) { + + print $out qq{ + + $point + + }, join(' ', map { ucfirst($_) . ':' . $hash->{$_} } ( qw/time lat lon speed course date var var_ew/ ) ), qq{ + + + }, $hash->{lon}, ',', $hash->{lat}, qq{,0 + + + }; + + } else { + print $out $hash->{lon}, ',', $hash->{lat}, 0, "\n"; + } } -print qq{ +print $out qq{ + + + +} unless $individual_placemarks; + +print $out qq{ }; -warn "Produced $point points from $path\n"; +warn "Produced $point points from $path -> $out_path\n";