GIS-Distance-GeoEllipsoid
view release on metacpan or search on metacpan
# Set the ellipsoid:
my $gis = GIS::Distance->new( 'GeoEllipsoid', 'NAD27' );
```
# DESCRIPTION
This module is a wrapper around [Geo::Ellipsoid](https://metacpan.org/pod/Geo%3A%3AEllipsoid) for [GIS::Distance](https://metacpan.org/pod/GIS%3A%3ADistance).
Normally this module is not used directly. Instead [GIS::Distance](https://metacpan.org/pod/GIS%3A%3ADistance)
is used which in turn interfaces with the various formula classes.
# OPTIONAL ARGUMENTS
## ellipsoid
```perl
my $gis = GIS::Distance->new( 'GeoEllipsoid', 'NAD27' );
```
Pass the name of an ellipsoid, per ["DEFINED ELLIPSOIDS" in Geo::Ellipsoid](https://metacpan.org/pod/Geo%3A%3AEllipsoid#DEFINED-ELLIPSOIDS).
lib/GIS/Distance/GeoEllipsoid.pm view on Meta::CPAN
my $gis = GIS::Distance->new( 'GeoEllipsoid' );
# Set the ellipsoid:
my $gis = GIS::Distance->new( 'GeoEllipsoid', 'NAD27' );
=head1 DESCRIPTION
This module is a wrapper around L<Geo::Ellipsoid> for L<GIS::Distance>.
Normally this module is not used directly. Instead L<GIS::Distance>
is used which in turn interfaces with the various formula classes.
=head1 OPTIONAL ARGUMENTS
=head2 ellipsoid
my $gis = GIS::Distance->new( 'GeoEllipsoid', 'NAD27' );
Pass the name of an ellipsoid, per L<Geo::Ellipsoid/DEFINED ELLIPSOIDS>.
If not set the default ellipsoid, C<WGS84>, will be used.
t/accuracy.t view on Meta::CPAN
my $test_cases = {
'Canoga Park to San Francisco' => [ 34.202361, -118.601875, 37.752258, -122.441254, 524.347542197146, 'km'],
'Egypt to Anchorage' => [ 26.185018, 30.047607, 61.147543, -149.81575, 10324.656666156, 'km'],
'London to Sydney' => [ 51.497736, -0.115356, -33.81966, 151.169472, 16982.5402359324, 'km'],
'Santiago to Rio de Janeiro' => [-33.446339, -70.63591, -22.902981, -43.213177, 2923.66733201558, 'km'],
'Beirut to Dimashq' => [ 33.863146, 35.52824, 33.516496, 36.287842, 80241.1054436632, 'm' ],
};
my $test_case_count = @{[ keys %$test_cases ]} + 0;
test_formula( 'GeoEllipsoid' );
done_testing;
sub test_formula {
my ($formula) = @_;
my $gis = GIS::Distance->new( "GIS::Distance::$formula" );
foreach my $title (keys %$test_cases) {
my $case = $test_cases->{$title};
my $unit = $case->[5];
my $distance = $case->[4];
my $length = $gis->distance( $case->[0], $case->[1], $case->[2], $case->[3] )->$unit();
is_close( $length, $distance, $title );
}
}
( run in 0.315 second using v1.01-cache-2.11-cpan-26ccb49234f )