tags:

views:

160

answers:

4

When I type in addresses in Google maps for locations in Asia, quite a lot of them are off by more than 200 metres. For example, "blk 85 bedok north road, singapore" is off by more than 300 metres. While I don't expect Google Maps to be spot on every time, sometimes the error is too great for certain use cases. What options do I have to handle inaccurate Google Maps locations in a web app? The web app should let the user enter an address or postal code as part of an entry and I will geocode the address and store the lat-long.

A: 

You don't have any fixes for this really, you're at the mercy of the accuracy of google maps here. The important part is you don't know if the address in inaccurate when doing one search to the next, so nothing you can do to handle it.

You can post a topic here and google will see it and often respond as well: Google Maps Local Listing Forums. I'd open something there with some of your examples and hope they get more accurate...that's all you can do in this case.

There are always other alternatives as well, yahoo and bing have mapping APIs, but I have no idea how much better or worse off you'd be going that route.

Nick Craver
Tried out yahoo and bing and having the same issues. The best map for Singapore comes from gothere.sg...but unfortunately, it's restricted to Singapore.
Azzizz81
+1  A: 

You could use bing, yahoo's and google's Geo Location api's to find latitude and longitude for a location, average the results together and use the result. Thus, if they all agree, you still get a good location, but if they disagree you get the best approximation of all three.

You could even programmatically compare the results from each engine and throw out any that don't agree with the others (for instance, if bing and yahoo agree and google does not, you could throw out google).

Beyond that, if you have a collection of addresses you know to be wrong, you could simply store the correct longitude and latitude for those points, and override the results in those cases.

Of course, to get around this problem at all, you'll need to geocode the addresses, check their validity in some way (as described above), and plot them using their latitude and longitude.

Tristan Havelick
I tried out yahoo and bing, unfortunately the results are not good enough either....I think I'll just give my users the option to adjust the marker if they see that the location is inaccurate.
Azzizz81
A: 

The problem is not the lat/lng data, in fact, they are correct. The problem is that the geo coords of the map tiles of the public Google maps api are inaccurate. The maps at maps.google.com are provided by a different map provider than the map tiles used with the public Google Maps API that you can embed in your website, use in your own applications, etc.

Check my recent posting at http://stackoverflow.com/questions/3289039/google-maps-apps-with-mapview-have-different-current-positions

Mathias Lin
A: 

Is the result out on maps.google.com as well as through the maps api?

If on google maps live site the result is accurate then you can do an ajax search to return the correct lon/lat.

I have used this when geocoding UK postcodes

Geocoding UK Postcodes with Google Map API

skyfoot