From generic level I'd describe all the geocoding services mainly as
Input is an address given in a valid style alternative:
Single string
Structured address
Geoposition (so-called reverse geocoding)
Output: a list of "hits" where each one comes with
structured address fields such as country, city, postcode,...
coordinates representing the geoposition
various "quality" statements that are supposed to enable clients to
decide whether a "hit" is valid input for the upcoming steps (automated process)
decide which hit fits the upcoming process in the best way
As we get asked for this more and more often here comes another fancy mapping table:
xLocate 1
xLocate 2 / Geocoding API location[]
Address
country
country
state
state
n.a.
province
postCode
postalCode
city
city
city2
district
n.a.
subdistrict
street
street
houseNumber
houseNumber
n.a.
address.formattedAddress
Result
adminRegion
n.a.
appendix
n.a.
countryCapital
n.a.
totalScore
location.quality.totalScore
detailLevelDescription
location.locationType
classificationDescription
n.a.
coordinates.y
location.referencePosition.latitude
coordinates.x
location.referencePosition.longitude
n.a.
location.roadAccessPosition.latitude
n.a.
location.roadAccessPosition.longitude
additionalFields
Scores of the individual address fields
n.a.
location.quality.addressScores.country
n.a.
location.quality.addressScores.state
n.a.
location.quality.addressScores.province
n.a.
location.quality.addressScores.postalCode
n.a.
location.quality.addressScores.city
n.a.
location.quality.addressScores.district
n.a.
location.quality.addressScores.subDistrict
n.a.
location.quality.addressScores.street
n.a.
location.quality.addressScores.houseNumber
Bernd Welter Technical Partner Manager Developer Components
PTV Logistics - Germany
Bernd at... The Forum,LinkedIn, Youtube, StackOverflow
I like the smell of PTV Developer in the morning...