Details
Description
In Civi's settings you can choose a 'mapping' provider, but leave a 'geocoding' provider.
This is desirable if you don't want to geocode addresses.
However, if a geocoding provider is not set, CiviCRM falls back to using the 'mapping' provider for Geocoding:
public static function getProviderClass() {
$settings = Civi::settings();
if ($settings->get('geoProvider')) {
return 'CRM_Utils_Geocode_' . $settings->get('geoProvider');
}
elseif ($settings->get('mapProvider')) {
return 'CRM_Utils_Geocode_' . $settings->get('mapProvider');
}
else {
return '';
}
}
This is not the expected behaviour. Admittedly it doesn't make sense to use mapping without geocoding, since you wouldn't have anything to display on the map.
I could make a quick PR to remove the fallback, or we could change the UI to be clearer that rather than 'setting a geocoding provider' it will use mapping as the default, but can be overridden.