Skip to content

bduggan/raku-geo-basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Geo::Basic - Basic geospatial functions

SYNOPSIS

use Geo::Basic;
my $hash = geohash-encode lat => 51.435, lon => -0.215, precision => 5;
# "gcpue5"

my $decoded = geohash-decode $hash;
# %( lat-max => 51.416016, lat-min => 51.459961,
#    lon-max => -0.219727, lon-min => -0.175781 )

my $neighbors = geohash-neighbors $hash;
# [gcpuek gcpueh gcpudu gcpue7 gcpudg gcpue6 gcpue4 gcpudf]

my $distance-km = haversine-km :lat1(51.435), :lon1(-0.215), :lat2(51.435), :lon2(-0.214);
# 0.06931914818231608

my $distance-mi = haversine-miles :lat1(51.435), :lon1(-0.215), :lat2(51.435), :lon2(-0.214);
# 0.04307292175092216

DESCRIPTION

These are a few simple utilities for doing geospatial calculations. The following functions are provided:

* `geohash-encode` -- encode a latitude and longitude into a geohash
* `geohash-decode` -- decode a geohash into a latitude and longitude
* `geohash-neighbors` -- find the neighbors of a geohash
* `haversine-km` -- calculate the distance between two points on the earth in kilometers
* `haversine-miles` -- calculate the distance between two points on the earth in miles

FUNCTIONS

sub geohash-encode

sub geohash-encode(
    Rat(Real) :$lat,
    Rat(Real) :$lon,
    Int :$precision = 9
) returns Mu

Encode a latitude and longitude into a geohash

sub geohash-decode

sub geohash-decode(
    Str $geo
) returns Hash

Decode a geohash into a latitude and longitude

sub radians

sub radians(
    Real $deg
) returns Mu

Convert degrees to radians

sub km-to-miles

sub km-to-miles(
    Real $km
) returns Mu

Convert kilometers to miles

sub haversine-miles

sub haversine-miles(
    Real :$lat1,
    Real :$lon1,
    Real :$lat2,
    Real :$lon2
) returns Mu

Calculate the great circle distance in miles, using the havarsine formula

sub haversine-km

sub haversine-km(
    Real :$lat1,
    Real :$lon1,
    Real :$lat2,
    Real :$lon2
) returns Mu

Calculate the great circle distance in kilometers using the havarsine formula

AUTHOR

Brian Duggan

Original geohash code by Thundergnat on Rosetta Code

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages