function location_get_postalcode_data_de in Location 7.5
Same name and namespace in other branches
- 5.3 supported/location.de.inc \location_get_postalcode_data_de()
- 5 supported/location.de.inc \location_get_postalcode_data_de()
- 6.3 supported/location.de.inc \location_get_postalcode_data_de()
- 7.3 supported/location.de.inc \location_get_postalcode_data_de()
- 7.4 supported/location.de.inc \location_get_postalcode_data_de()
Returns a lat/lon pair of the approximate center of the given postal code in the given country
Parameters
$location: An associative array $location where only postal code and country are necessary, but can have the keys: 'street' => the street portion of the location 'supplemental' => additional street portion of the location 'province' => the province, state, or territory 'country' => lower-cased two-letter ISO code (REQUIRED) 'postal_code' => the international postal code for this location (REQUIRED)
Return value
An associative array where 'lat' => approximate latitude of the center of the postal code's area 'lon' => approximate longitude of the center of the postal code's area
File
- supported/
location.de.inc, line 242
Code
function location_get_postalcode_data_de($location = array()) {
$dash_index = strpos($location['postal_code'], '-');
// First we strip slash off if we're dealing with a 9-digit US zipcode
if ($dash_index === FALSE) {
$location['postal_code'] = substr($location['postal_code'], 0, $dash_index);
}
// Now we pad the thing and query.
$row = db_query("SELECT * FROM {zipcodes} where country = :country AND zip = :zip", array(
':country' => $location['country'],
':zip' => str_pad($location['postal_code'], 5, "0", STR_PAD_LEFT),
))
->fetchObject();
if ($row) {
return array(
'lat' => $row->latitude,
'lon' => $row->longitude,
'city' => $row->city,
'province' => $row->state,
'country' => $row->country,
);
}
else {
return NULL;
}
}