subset Longitude of Rat where -180 <= * <= 180;
subset Latitude of Rat where -90 <= * <= 90;
class GeoPoint {
has Latitude $.lat is rw is required;
has Longitude $.lon is rw is required;
method gist {
($!lat >= 0 ?? "N$!lat" !! "S{-$!lat}") ~ " " ~
($!lon >= 0 ?? "E$!lon" !! "W{-$!lon}")
}
}
my $geo = GeoPoint.new(lat => 39.1915045, lon => -96.6070506);
say $geo.lat; # 39.1915045
say $geo.lon; # -96.6070506
say $geo; # N39.1915045 W96.6070506