Thursday, February 25, 2010

How to Retrieve a Zipcode Using JavaScript

[codesyntax lang="javascript"]// Retrieve user’s Zipcode
// Demo
at http://sandbox.gtaero.net/zipcode.html
function retrieve_zip(callback)
{

try { if(!google) { google = 0; } } catch(err) { google = 0; } // Stupid Exceptions

if(navigator.geolocation) // FireFox/HTML5 GeoLocation
{

navigator.geolocation.getCurrentPosition(function(position)
{

zip_from_latlng(position.coords.latitude,position.coords.longitude,callback);
});
}

else if(google && google.gears) // Google Gears GeoLocation
{
var geloc =
google.gears.factory.create('beta.geolocation');
geloc.getPermission();

geloc.getCurrentPosition(function(position)
{

zip_from_latlng(position.latitude,position.longitude,callback);
},function(err){});
}
}
function
zip_from_latlng(latitude,longitude,callback)
{
// Setup the Script using Geonames.org's
WebService
var script = document.createElement("script");
script.src =
"http://ws.geonames.org/findNearbyPostalCodesJSON?lat=" + latitude + "&lng=" + longitude + "&callback="
+ callback;
// Run the Script

document.getElementsByTagName("head")[0].appendChild(script);
}
function
example_callback(json)
{
// Now we have the data! If you want to just assume it's the
'closest' zipcode, we have that below:
zip = json.postalCodes[0].postalCode;
country =
json.postalCodes[0].countryCode;
state = json.postalCodes[0].adminName1;
county =
json.postalCodes[0].adminName2;
place = json.postalCodes[0].placeName;
alert(zip);
}
retrieve_zip("example_callback");
// Alert the User's Zipcode
[/codesyntax]

3 comments:

  1. Mark S. is definitely on the right track. If you want to get a professional looking
    email address, Id recommend buying your name domain name, like or
    ajf 10
    If its
    common it might be difficult to get, however, be creative and you can usually find something.

    ReplyDelete
  2. very nice. Thanks for the code snippet, this will get me going in the right
    direction.

    ReplyDelete
  3. this code not giving me exact zip code .it is giving me another state's zip code can
    you please solve my problem?

    ReplyDelete