Dies ist ein heikles Geschäft ... zu gleichen Teilen Black Magic und Science. Sie werden die Variationen von Boulevard allein erstaunt sein.
Deshalb verwende ich die Google API. Es kann zeitaufwendig für den anfänglichen Datensatz sein, aber nur neue Adds müssen aufgelöst werden.
Zum Beispiel
https://maps.googleapis.com/maps/api/geocode/json?address=500 S Main St,Providence RI 02903
kehrt, teilweise
"formatted_address" : "500 S Main St, Providence, RI 02903, USA"
und die gute Nachricht ist
https://maps.googleapis.com/maps/api/geocode/json?address=500 South Main Steet,Providence RI 02903
kehrt die gleiche formatiert Adresse wie die vorherige Abfrage
"formatted_address" : "500 S Main St, Providence, RI 02903, USA"
VBA Beispiel:
Auf den folgenden Code ausführen ...
' VBA project Reference required:
' Microsoft XML, v3.0
Dim httpReq As New MSXML2.ServerXMLHTTP
httpReq.Open "GET", "https://maps.googleapis.com/maps/api/geocode/json?address=500 South Main Steet,Providence RI 02903", False
httpReq.send
Dim response As String
response = httpReq.responseText
... die String-Variable response
enthält die folgenden JSON-Daten:
{
"results" : [
{
"address_components" : [
{
"long_name" : "500",
"short_name" : "500",
"types" : [ "street_number" ]
},
{
"long_name" : "South Main Street",
"short_name" : "S Main St",
"types" : [ "route" ]
},
{
"long_name" : "Fox Point",
"short_name" : "Fox Point",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Providence",
"short_name" : "Providence",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Providence County",
"short_name" : "Providence County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Rhode Island",
"short_name" : "RI",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "02903",
"short_name" : "02903",
"types" : [ "postal_code" ]
},
{
"long_name" : "2915",
"short_name" : "2915",
"types" : [ "postal_code_suffix" ]
}
],
"formatted_address" : "500 S Main St, Providence, RI 02903, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 41.82055829999999,
"lng" : -71.4028137
},
"southwest" : {
"lat" : 41.8204014,
"lng" : -71.40319219999999
}
},
"location" : {
"lat" : 41.8204799,
"lng" : -71.40300289999999
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 41.8218288302915,
"lng" : -71.40165396970851
},
"southwest" : {
"lat" : 41.8191308697085,
"lng" : -71.40435193029151
}
}
},
"partial_match" : true,
"place_id" : "ChIJicPQAT9F5IkRfq2njkYqZtE",
"types" : [ "premise" ]
}
],
"status" : "OK"
}
Ich glaube nicht, dass solche Funktion existiert. Du musst selbst damit umgehen. – GurV