Zeeshan Rang
Zeeshan Rang

Reputation: 19895

How to convert zipcode to longitude and latitude?

I want to find the longitude and latitude of place with a the help to a zipcode. Can anyone tell me how to do that?

An example in actionscript what be very much helpful for me. Because i am making a project in Flex.

Regards Zee

Upvotes: 2

Views: 6688

Answers (6)

Dip
Dip

Reputation: 696

The easiest way out is using GoogleMap Api. Say you have a zipcode in a varible $zipcode.

$latlongUrl = 'http://maps.googleapis.com/maps/api/geocode/json?components=postal_code:'.$zipcode;

    $data = file_get_contents($latlongUrl); // you will get string data
    $data = (json_decode($data)); // convert it into object with json_decode
    $location = ($data->results[0]->geometry->location); // get location object

$location is the object with Latitude and Longitude value.

Upvotes: 0

Matt
Matt

Reputation: 1058

There is now a better solution for this using the most recent Google Maps API (v3). The following is a slightly modified example from multiple sources. I have to give most of the credit to them. It's PHP, using cURL to retrieve the data from Google, but you could also use Ajax.

function address_lookup($string){

   $string = str_replace (" ", "+", urlencode($string));
   $details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=".$string."&sensor=false";

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $details_url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $response = json_decode(curl_exec($ch), true);

   // If Status Code is ZERO_RESULTS, OVER_QUERY_LIMIT, REQUEST_DENIED or INVALID_REQUEST
   if ($response['status'] != 'OK') {
    return null;
   }

   $geometry = $response['results'][0]['geometry']['location'];

    $array = array(
        'lat'     => $geometry['lat'],
        'lng'     => $geometry['lng'],
        'state'   => $response['results'][0]['address_components'][3]['short_name'],
        'address' => $response['results'][0]['formatted_address']
    );

    return $array;

}

$zip= '01742';

$array = address_lookup($zip);
print_r($array);

Upvotes: 0

user456919
user456919

Reputation:

I got my solve you can also

function getLatLong($code) {
  $mapsApiKey = 'ABQIAAAAsV7S85DtCo0H9T4zv19FoRTdT40ApbWAnDYRE0-JyP5I6Ha9-xT9G5hCQO5UtOKSH5M3qhp5OXiWaA';
  $query = "http://maps.google.co.uk/maps/geo?q=".urlencode($code)."&output=json&key=".$mapsApiKey;
  $data = file_get_contents($query);
  // if data returned
  if($data) {
    // convert into readable format
    $data = json_decode($data);
    $long = $data->Placemark[0]->Point->coordinates[0];
    $lat = $data->Placemark[0]->Point->coordinates[1];
    return array('Latitude'=>$lat, 'Longitude'=>$long);
  } else {
    return false;
  }
}

Upvotes: 2

Eric Bowden
Eric Bowden

Reputation: 142

If you are looking for on demand geocoding, use Google. They provide a simple pox web service version.

I wrote a blog about this a while back. Check out this link for step by step instructions for using this simple geocoding.

Cheers, Eric

Upvotes: 2

Daniel Pryden
Daniel Pryden

Reputation: 60987

There are several places to get zip code databases, in several formats. Load it into your favorite RDBMS, and query away.

Alternatively, you can use someone else's web service to look up the value for you. Other answers have posted possible web services; also, geocoder.us appears to have support for ZIP code lookup now as well.

Upvotes: 1

mobibob
mobibob

Reputation: 8794

Do you have access to a long/lat database? if not, i believe you can use the google maps API to do that lookup.

Oh .. I just noticed Chris' answer. I am not familiar with geonames. You might also want to get familiar with "http://freegeographytools.com/" which has a ton of geocoding, gps, etc. resources for a whole range of projects.

Ahhh ... I just visited Eric's blog post. That is excellent! I will definitely hook up with google for more details in a future project.

Upvotes: 2

Related Questions