Address standardization within a database

This is a tricky business … equal parts Black Magic and Science. You will be amazed at the variations of Boulevard alone.

This is why I use the Google API. It can be time consuming, for the initial data-set, but only new adds would need to be resolved.

For example

https://maps.googleapis.com/maps/api/geocode/json?address=500 S Main St,Providence RI 02903

returns, in part

"formatted_address" : "500 S Main St, Providence, RI 02903, USA"

and the GOOD News is

https://maps.googleapis.com/maps/api/geocode/json?address=500 South Main Steet,Providence RI 02903

returns the same formatted address as the previous query

"formatted_address" : "500 S Main St, Providence, RI 02903, USA"

VBA Example:

Upon executing the following code …

' 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

… the string variable response contains the following JSON data:

{
   "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"
}

Leave a Comment