use strict; use warnings; use Math::Trig qw(great_circle_distance deg2rad pi rad2deg great_circle_direction); my $low_right_lat ="49.033312"; my $low_right_long ="-95.261125"; my $upper_left_lat ="51.361154"; my $upper_left_long ="-101.353263"; my $user_lat ="49.752852"; my $user_long ="-100.119849"; sub NESW { deg2rad($_[0]), deg2rad(90-$_[1]) } my @A = NESW($low_right_long, $low_right_lat); my @B = NESW($upper_left_long, $upper_left_lat); my @USER = NESW($user_long, $user_lat); my $angle_a_to_user = great_circle_direction(@A, @USER); #in rads. my $angle_a_to_user_deg = rad2deg($angle_a_to_user); my $angle_b_to_user = great_circle_direction(@B, @USER); #in rads. my $angle_b_to_user_deg = rad2deg($angle_b_to_user); my $angle_a_to_b = great_circle_direction(@A, @B); #in rads. my $angle_a_to_b_deg = rad2deg($angle_a_to_b); my $angle_b_to_a = great_circle_direction(@B, @A); #in rads. my $angle_b_to_a_deg = rad2deg($angle_b_to_a); print "Angle From A to User is: $angle_a_to_user_deg\n"; print "Angle From B to User is: $angle_b_to_user_deg\n"; print "Angle From A to B is: $angle_a_to_b_deg\n"; print "Angle From B to A is: $angle_b_to_a_deg\n";