--- mk-kml.perl 2019/08/02 04:45:36 3.1 +++ mk-kml.perl 2023/12/26 01:23:11 3.2 @@ -2,36 +2,44 @@ use XML::Simple; use strict; -# Spit out a simple KML version of OmLand.gpx. -open KML, "> OmLand.kml" or die "Couldn't write OmLand.kml: $!\n"; +# Spit out a simple KML version of OmLand.xml +open KML, "> SI.kml" or die "Couldn't write SI.kml: $!\n"; print KML q{ - NZ Landouts + South Island Landouts }; -my $strips = XMLin('OmLand.gpx'); - +my $strips = XMLin('OmLand.xml', KeyAttr => {strip => 'id'}); my $gobook = ""; my $alt = ""; -foreach my $stripnum ( sort keys %{$strips->{'wpt'}} ){ - my $placemark = sprintf(q{ +foreach my $stripnum ( sort keys %{$strips->{strip}} ){ + my $lat; + my $lng; + my $min; + ($lat,$min) = split /\:/,$strips->{strip}->{$stripnum}->{lat}; + $min = (substr($min,0,6)) / 60; + $lat += $min; + ($lng,$min) = split /\:/,$strips->{strip}->{$stripnum}->{lng}; + $min = (substr($min,0,6)) / 60; + $lng += $min; + my $placemark = sprintf(q{ %s %s absolute> - %3.6f,%2.6f,%4.1f + %3.6f,-%2.6f,%4.1f }, $stripnum, - $strips->{'wpt'}->{$stripnum}->{'desc'}, - $strips->{'wpt'}->{$stripnum}->{'lon'}, - $strips->{'wpt'}->{$stripnum}->{'lat'}, - $strips->{'wpt'}->{$stripnum}->{'ele'}); - if ( defined $strips->{'wpt'}->{$stripnum}->{'extensions'}->{gobook} and $strips->{'wpt'}->{$stripnum}->{'extensions'}->{gobook} eq "yes" ){ + $strips->{strip}->{$stripnum}->{name}, + $lng, + $lat, + $strips->{strip}->{$stripnum}->{elev} / 3.28); + if ( $strips->{strip}->{$stripnum}->{gobook} eq "yes" ){ $gobook .= $placemark; } else{ @@ -39,8 +47,8 @@ foreach my $stripnum ( sort keys %{$stri } } print KML q{ - Glide Omarama Landouts - Glide Omarama recommended soaring area landouts + Omarama Landouts + Omarama recommended soaring area landouts }; print KML $gobook; print KML q{