Don’t Mix and Match your Google and Yahoo GPS!
Something interesting came up while working on a project of mine. The client wanted us to build a Store Locator but (A) couldn’t provide a Web service to the same stuff on their Web site and (B) could provide store information but not the GPS coordinates.
I had some options for how to handle this, and one of them was to screen scrape their Web site. However, there’s a lot of risk in that of course and I decided that even though the project was just 8 days to write their iPhone app, I’d do it the right way.
The process of writing a Store Locator are tricky, but if there’s interest I can describe it more fully in a future post. However, for sake of time, I want to focus on just one aspect: a bug with geocoding the addresses.
I used the GPS Visualizer service to run all 450 store locations through and get latitude/longitude for each. I wrote several scripts to automate as much as possible this very manual process. However, after successfully doing it and testing the app it became apparent the stores were not located exactly where I knew they were.
My first concern was that the service was bad. Perhaps it didn’t interpret the addresses well enough? I was a little worried because I knew it might take a lot more time to find another batch processor and carefully validate the results.
But, then I found the problem.
GPS Visualizer, by default, uses the Yahoo! GPS service to do its geocoding. However, the iPhone uses Google Maps! Lo and behold, they are not compatible!! There is a margin of error either in the locations or the mapping, but long story short I changed the source to Google on GPS Visualizer and the data was perfect!
So, take this as a warning. Yahoo! and Google location information are not compatible. In my experience, the Yahoo data was about 5 city blocks off from Google’s.
Somebody is mistaken. I wonder who?