Changes for version 0.19 - 2026-10-17
- 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
Documentation
Modules
Location information