I was testing with the default OpenStreetMaps and found it's not as forgiving on the address format compared to Google Geocoding API. So perhaps instead of only relying on street_address in CRM_Utils_Geocode_Geocoder::getAddressFields() it could also pull in the other street_* fields (street_number, street_name, street_unit, etc) and first try to geocode based on that. Failing that, could try the full address. Or vice-versa.
If the address gets properly parsed (such as putting the "Unit/Apt/Suite" in the street_unit field) then it could try to geocode without the unit.
I was testing with the default OpenStreetMaps and found it's not as forgiving on the address format compared to Google Geocoding API. So perhaps instead of only relying on
street_address
inCRM_Utils_Geocode_Geocoder::getAddressFields()
it could also pull in the other street_* fields (street_number
,street_name
,street_unit
, etc) and first try to geocode based on that. Failing that, could try the full address. Or vice-versa.If the address gets properly parsed (such as putting the "Unit/Apt/Suite" in the
street_unit
field) then it could try to geocode without the unit.