When CiviCRM geocodes an address, the geocoding service generally returns a full collection of address fields, including street, city, etc. CiviCRM, however, typically uses only the latitude and longitude fields and discards everything else.
This extension allows site administrators to set a policy for what to do with that information on a field-by-field basis: discard it, fill in missing data, or overwrite existing data. By default, this extension preserves the core behavior of discarding the additional data.
- This extension requires CiviCRM version 4.7.7 or greater, due to its reliance upon hook_civicrm_geocoderFormat, which was introduced in that version.
- To get anything out of this extension, you must use a supported geocoding service or implement your own.
Settings are managed in CiviCRM by visiting Administer > System Settings > Geodata Filler. A link is also provided from the core Mapping and Geocoding settings screen.
This extension does not support every geocoding service that has been integrated with CiviCRM. For a list of currently supported services, have a look at CRM/Geofill/Parser.
Adding another service is a two-step process:
This extension introduces a new hook hook_civicrm_geofill_parser
, which allows a developer to register a
geodata-parsing class for the geocoding service of her choosing.
hook_civicrm_geofill_parser(array &$registry)
- array $registry - A reference to the registry of parser class names, keyed by $geoProvider name as passed
to
hook_civicrm_geocoderFormat
.
- void
Geodata Filler eats its own dog food.
It must implement CRM_Geofill_Parser_Interface.
Feedback, bug reports, and pull requests are welcome.