--- mk-kml.perl 2019/08/02 04:45:36 3.1 +++ mk-kml.perl 2025/05/18 05:02:15 3.4 @@ -1,23 +1,28 @@ #! /usr/bin/perl -w -use XML::Simple; +use JSON; use strict; -# Spit out a simple KML version of OmLand.gpx. +# Spit out a simple KML version of OmLand.xml open KML, "> OmLand.kml" or die "Couldn't write OmLand.kml: $!\n"; print KML q{ - NZ Landouts + South Island Landouts }; +my $json = JSON->new; -my $strips = XMLin('OmLand.gpx'); +open my $fh, '<', OmLand.geojson or die "error opening OmLand.geojson $!\n"; +my $text = do { local $/; <$fh> }; +close $fh; + +my $geojson = $json->decode( $text ); my $gobook = ""; my $alt = ""; -foreach my $stripnum ( sort keys %{$strips->{'wpt'}} ){ - my $placemark = sprintf(q{ +foreach my $feature ( @{$geojson->{'features'}} ){ + my $placemark = sprintf(q{ %s %s @@ -26,12 +31,14 @@ foreach my $stripnum ( sort keys %{$stri }, - $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" ){ + $feature->{'id'}, + $feature->{'properties'}->{'name'}, + $feature->{'geometry'}->{'coordinates'}->[0], + $feature->{'geometry'}->{'coordinates'}->[1], + $feature->{'geometry'}->{'coordinates'}->[2]); + + if ( defined $feature->{'properties'}->{'gobook'} and + $feature->{'properties'}->{'gobook'} eq "yes" ){ $gobook .= $placemark; } else{ @@ -39,8 +46,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{