Geo::parseAddressCompontent()
\nn\t3::Geo()->parseAddressCompontent($row = []);
Normalizes a result from the GeoCoding
@param array $row
@return array
Source Code
public function parseAddressCompontent( $row = [] )
{
if (!$row) $row = [];
$address = [];
$addressShort = [];
foreach ($row['address_components'] as $r) {
foreach ($r['types'] as $n) {
$address[$n] = $r['long_name'];
$addressShort[$n] = $r['short_name'];
}
}
$address['name'] = $row['name'] ?? '';
$address['country_short'] = $addressShort['country'] ?? '';
$address['street'] = trim(($address['route'] ?? '') . ' ' . ($address['street_number'] ?? '') );
$address['zip'] = $address['postal_code'] ?? '';
$address['city'] = $address['locality'] ?? '';
$address['formatted_phone_number'] = $address['phone'] = $row['formatted_phone_number'] ?? '';
$address['international_phone_number'] = $row['international_phone_number'] ?? '';
$address['lat'] = $row['geometry']['location']['lat'] ?? null;
$address['lng'] = $row['geometry']['location']['lng'] ?? null;
$address['google_id'] = $row['id'] ?? '';
$address['google_place_id'] = $row['place_id'] ?? '';
$address['types'] = $row['types'] ?? [];
if (!$address['street'] && ($row['vicinity'] ?? false)) {
$parts = explode( ',', $row['vicinity'] );
$address['street'] = trim($parts[0]);
$address['city'] = trim($parts[1]);
}
return $address;
}
Copied!