use strict;
use warnings;
use Math::Trig qw(great_circle_distance 
                  great_circle_direction 
                  great_circle_midpoint
                  deg2rad);

sub NESW 
  { 
  # Nordpol - Aequator-Korrektur
  return deg2rad($_[0]), deg2rad(90 - $_[1]); 
  }
  
my @London = NESW(-0.5, 51.3);
my @Tokyo = NESW(139.8, 35.7);
my $km = great_circle_distance(@London, @Tokyo, 6378);

print 'Distanz  London - Tokyo ', $km, "\n";
# Die Richtung von London nach Tokyo (in radians, 
# direkt nach Norden = 0, direkt nach Osten = pi/2
my $rad = great_circle_direction(@London, @Tokyo);
print 'Richtung London - Tokyo ', $rad, "\n";

# Die Mitte zwischen London und Tokyo, ca. 69N, 89E in Sibirien
my @Mitte = great_circle_midpoint(@London, @Tokyo);
print 'Mitte    London - Tokyo ', join(', ',@Mitte), "\n";
