Revision history for Geo::Location::Point
0.19 Sat Oct 17 09:03:01 AM EDT 2026
accuracy_for(): the rule that turns the fields a match was made on into an
accuracy level now lives here, beside ACCURACY_LEVELS, instead of in
Geo::Coder::Free::Provenance. The levels a point accepts and the rules that
choose one of them therefore have a single home, and a caller does not have
to keep two modules in step to describe a match
It is a function, not a method - the fields are what a backend matched, not
something a point carries - and it walks ACCURACY_LEVELS in order, so the
most precise level with a matched field wins and the answer is always a level
the vocabulary publishes. A match on a row with none of the fields is still
a named place, so it is a locality rather than left unsaid
The field spellings and the precedence are unchanged from the copy that was
in Provenance: house_number/number, road/street, postcode/post_code/zip,
city/town/name, state/state_district/county/region and country, read
case-insensitively
0.18 Sat Oct 17 09:03:01 AM EDT 2026
t/attr.t: every field set a backend can match on derives the level it should,
the most precise field wins whatever order the fields arrive in, the fields
are read case-insensitively, and every level derived is one the vocabulary
publishes and a point accepts
0.17 Fri Oct 16 09:03:34 PM EDT 2026
Named accessors for the provenance fields - geocoder, database, confidence,
accuracy, country, city and state - instead of leaving them to AUTOLOAD, so
that pod-coverage sees them and a value the reader cannot trust is refused
where it is set: confidence must be a number from 0 to 1, and accuracy must
be one of address, street, postcode, locality, city, region or country, the
vocabulary that Geo::Coder::Free::Provenance speaks
They read and write the slot AUTOLOAD would, invalidating the same caches,
so the two spellings are interchangeable and undef still clears a field
The BUGS section now says which attributes are checked and which are not:
new() still stores whatever it is handed, including the false values 0.16
made readable, so a provenance field set through the constructor is not
validated
t/attr.t: a VALIDATION block asserts that an out-of-range confidence, an
accuracy outside the vocabulary and a non-string city are refused by name,
and that the valid values round-trip. The empty string is no longer an
accuracy, so the three assertions that used it as one now use a level.
ACCURACY_LEVELS() hands out one list that is read-only (Readonly), not a
copy, because the vocabulary is shared: the module takes the levels it
validates against when it loads, and accuracy() refuses anything else
there, so a level pushed into the list would be a level the module
published and would not accept. A caller that tries is refused rather
than obeyed, and every module that reads the list - the name
Geo::Coder::Free::Provenance re-exports included - is reading the same
levels the validator enforces. t/attr.t asserts that the attempt is
refused with a read-only error and that the list is left as it was, and
that every level in it is a level accuracy() accepts and reads back
0.16 Thu Oct 15 09:47:39 AM EDT 2026
Remove wasted test
Store and return false values, e.g. confidence => 0, instead of
treating them as unset
Added the test dashboard
0.15 Mon Aug 25 13:51:01 EDT 2025
Check maximum latitude is 90, not 180
Use members consistently
Ensure tz cache is also invalidated when assigning new location
More realistic equals (1e-5 = 1m, 1e-9 is 0.1mm)
0.14 Fri Jul 4 11:03:02 EDT 2025
Retrieve "Country" when asking for "country"
Use Params::Get
0.13 Tue Jan 21 10:33:46 EST 2025
Use gtar to create a distribution on Macs
Use Test::DescribeMe to simplify tests
More new() testing
Added codecov.io support
Refactor _sortoutcase
Don't install TimeZone::TimeZoneDB if it's already installed
Use Test::Needs
0.12 Tue Jul 2 21:30:04 EDT 2024
Better argument validation
Added as_uri() method
Added lng as a synonym for long
0.11 Mon Nov 13 13:35:32 EST 2023
Fix circular dependancy
0.10 Wed Nov 8 11:41:18 EST 2023
When setting the location manually, the new location was not stored
0.09 Wed Jun 14 20:52:13 EDT 2023
Increased the test coverage
Added the tz() method
0.08 Fri Mar 17 13:13:30 EDT 2023
Support the messages latitude and longitude
0.07 Sat Feb 25 20:30:45 EST 2023
Fix case in field name traversal
Calls to as_string after setting a field after
calling as_string would return the old value
Fixed the documentation of and testing of equal()
0.06 Sat Oct 31 08:40:18 EDT 2020
Fix the equals() and not_equals() functions
0.05 Sat Oct 31 05:24:53 EDT 2020
Fix https://github.com/nigelhorne/Geo-Coder-Free/issues/48
Added equal() and overloaded == to map to map to it
0.04 Fri Oct 30 09:31:17 EDT 2020
Upgrade from Dist::Zilla to ExtUtils::MakeMaker
Added overload '""' to map to as_string
0.03 Wed 17 Apr 16:35:20 EDT 2019
Don't turn GB into Gb
Improved handling of fields with different cases
0.02 Fri Mar 29 18:28:10 EDT 2019
as_string() now returns the location attribute if that has been set
minimum version set to 5.10.0 because of //=
Carp on error rather than just dying
Allow latitude and longitude to be given instead of lat and long
Import values from MaxMind database
0.01 Tue 19 Mar 18:16:48 EDT 2019
First version
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)