NAME
Geo::MedianCenter::XS - Find the median center of locations on earth
SYNOPSIS
use Geo::MedianCenter::XS qw/haversine_distance_dec median_center/;
my $distance = haversine_distance_dec(
54.728569, 8.7057573, # Dagebuell-Hafen
54.730320, 8.7289753, # Dagebuell-Kirche
);
my ($center_lat, $center_lon) = median_center({
points => [
[ 54.728569, 8.7057573 ], # Dagebuell-Hafen
[ 54.730320, 8.7289753 ], # Dagebuell-Kirche
[ 54.639998, 8.6017305 ], # Langeness
[ 54.492014, 8.8648961 ], # Nordstrand
],
});
DESCRIPTION
This module finds the geometric median point of locations on the earth's surface. Also known as euclidean space this is the point where the sum of great circle distances to the locations is minimal. The point is more resistant to outliers than the mean center. The module will guess a point and refine it based on the (weighted) mean center until a good enough approximation is found.
FUNCTIONS
- median_center(\%options)
-
Computes the median center of a list of points. Options are
points
, an array of arrays of latitude and longitude in decimal degrees and optionally a weight;tolerance
, a number in meters, if the iterative algorithm improves its approximation by at most this value, the function will return;max_iterations
, the function will return after this many attempts to refine the approximation. Returns the latitude and longitude in decimal degrees. - haversine_distance_dec($lat1, $lon1, $lat2, $long2)
-
Computes the distance between the two points using the Haversine formula in meters. Latitude and longitude are specified in decimal degrees.
- haversine_distance_rad($lat1, $lon1, $lat2, $long2)
-
Computes the distance between the two points using the Haversine formula in meters. Latitude and longitude are specified in radians.
EXPORT
The function median_center
is exported by default, the other functions on request.
BUG REPORTS
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Geo-MedianCenter-XS
AUTHOR / COPYRIGHT / LICENSE
Copyright (c) 2010 Bjoern Hoehrmann <bjoern@hoehrmann.de>.
This module is licensed under the same terms as Perl itself.