Geocoding: Location to Latitude/Longitude
Both Google and Yahoo offer free geocoding services. Geocoding is the process of getting the latitude/longitude coordinates for a particular address or location. With the latitude/longitude coordinates you can fun things like plot markers on a map, calculate distances between points, etc. I have created two simple standalone functions to geocode an address, one for Google and one for Yahoo. Both require an API key.
Google Documentation Google API Key Yahoo Documentation Yahoo API Key
$googleKey = "INSERT-API-KEY";
$yahooKey = "INSERT-API-KEY";
// ARRAY OF LOCATION PARAMETERS
$params = array();
$params['address'] = "2470 E Street";
$params['city'] = "San Diego";
$params['state'] = "CA";
$params['zip'] = "92102";
$coords = geocodeGoogle($params,$googleKey);
echo "Latitude: {$coords['latitude']}<br>\n";
echo "Longitude: {$coords['longitude']}<br>\n";
// GOOGLE GEOCODE FUNCTION
function geocodeGoogle($params,$key){
$location = strtolower(str_replace(' ','+',"{$params['address']}, {$params['city']}, {$params['state']}, {$params['zipcode']}"));
$url = "http://maps.google.com/maps/geo?q={$location}&output=csv&key={$key}";
$response = file_get_contents($url);
$parts = explode(',',$response);
return array('latitude' => $parts[2], 'longitude' => $parts[3]);
}
$coords = geocodeYahoo($params,$yahooKey);
echo "Latitude: {$coords['latitude']}<br>\n";
echo "Longitude: {$coords['longitude']}<br>\n";
// YAHOO GEOCODE FUNCTION
function geocodeYahoo($params,$key){
$location = strtolower(str_replace(' ','+',"{$params['address']}, {$params['city']}, {$params['state']}, {$params['zipcode']}"));
$url = "http://local.yahooapis.com/MapsService/V1/geocode?appid={$key}&location={$location}&output=php";
$response = file_get_contents($url);
$data = unserialize($response);
return array('latitude' => $data['ResultSet']['Result']['Latitude'], 'longitude' => $data['ResultSet']['Result']['Longitude']);
}
You’re currently reading “ Geocoding: Location to Latitude/Longitude ,” an entry on BRADINO
- Published:
- 9.25.08 / 1pm
- Category:
- PHP























This is very helpful for me
Very helpful, thanks!