I've been asked to create a JavaScript solution to get a User's address (mainly postcode). We require a high level of accuracy for this.
I have decided on the following solution that uses Google Maps API for Business. I have mocked up a working example and it works well. Do you think this will be reliable and accurate in the wild.
Solution:
If (Mobile/ Tablet) use Browsers W3C Geolocation API (returns) Latitude/Longitude + Accuracy. W3C Geolocation API: http://dev.opera.com/articles/view/how-to-use-the-w3c-geolocation-api/
If (Desktop Machine/ IE8/ IE7) use Google Geolocation API (returns) Latitude/Longitude + Accuracy. https://developers.google.com/maps/documentation/business/geolocation/
Take the result with the Highest Accuracy.
if (Accuracy is poor) Ask User for postcode.
(else) Use the result with the Highest Accuracy and run it through the Google Reverse Geocoding API (Returns) Users Address with Postcode. https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding
We have run a few prototypes and have found that this approach is good. Apart from horrible accuracy from the Google Geolocation API. It seems solid. There is one issue with Usability of the W3C Geolocation popup. Some users on desktop miss this.