Google Maps API Tutorial

© 2007, 2008, 2009 Mike Williams

Translate this page:


Geocoding Low Quality Data

The technique for geocoding multiple addresses shown here is OK if your original address data is of reasonable quality.

I recently attempted to geocode a file of locations that had been collected in my family history system, and found that that mechanism wasn't appropriate. Much of the data was collected from hand written documents, some of which are over 200 years old, so there are transcription errors. Some of the original information was obtained from illiterate individuals and uses strange spelling. Some of the streets no longer exist. Some of the towns have changed their names, e.g. "Layton with Warbreck" is now "Blackpool". Some of the county boundaries have changed, e.g. the geocoder can't find "Bowness, Westmorland" because it's now in Cumbria.

I also seem to have hit several towns for which the geocoder has wildly inaccurate information. I have ancestors who came from Lytham, Charnock Richard, and North Meols.

My data was so bad that any sort of fully automated process would be useless. Every location needed to be looked at to see if the result is reasonable. Since I don't actually know where the locations should be, I couldn't drag a pointer to the correct locations. All I could do was to try modifying the address until the geocoder returned something sensible.

I ended up using two maps, one at street level and one zoomed out far enough so that I could see that the street was in the right town. I found that more convenient than zooming in and out with a single map.

Below the maps, I placed a control area in which the .getLocation() results could be displayed and selected, and the address text could be modified.

I display the results in XML format so that I can copy and paste the data into the final XML file. If your webhost supports server side scripting, you could post the data directly to your server to be stored in your online database.

I ended up with this

Back to Mike's Homepage
Up to the start of this tutorial