#!/usr/bin/perl -w ########################################### # map - Put track markers on a Yahoo Map # Mike Schilli, 2006 (m@perlmeister.com) ########################################### use strict; use YAML qw(LoadFile); use Geo::Distance; use Template; my $trkpts = LoadFile("tracks.yml"); my $geo = Geo::Distance->new(); my $count = 0; my $min = 0.4; # Minimum marker distance my @points = (); my $last_pt; for my $trkpt (@$trkpts) { if($last_pt) { my $k = $geo->distance("kilometer", $last_pt->{lon}, $last_pt->{lat}, $trkpt->{lon}, $trkpt->{lat}); next if $k < $min; } $trkpt->{count} = ++$count; push @points, $trkpt; $last_pt = $trkpt; } my $template = Template->new(); my $vars = { points => \@points }; $template->process("map.tmpl", $vars) or die $template->error();