protected function compareStreet(Address $a, Address $b, $query) { if (!$a->getStreetName() && !$b->getStreetName()) { return 0; } elseif ($a->getStreetName() && !$b->getStreetName()) { return -1; } elseif ($b->getStreetName() && !$a->getStreetName()) { return 1; } if (stripos($query, $a->getStreetName()) !== FALSE && stripos($query, $b->getStreetName()) === FALSE) { return -1; } elseif (stripos($query, $b->getStreetName()) !== FALSE && stripos($query, $a->getStreetName()) === FALSE) { return 1; } return 0; }
public static function format(Address $address, $options) { $data = array_filter(['country' => $address->getCountry()->getName(), 'city' => $address->getLocality(), 'district' => $address->getSubLocality(), 'postalCode' => $address->getPostalCode(), 'streetName' => $address->getStreetName(), 'streetNumber' => $address->getStreetNumber()]); if ($options['format'] === self::FORMAT_REVERSED) { $data = array_reverse($data); } if ($options['type'] === self::TYPE_SHORT) { unset($data['country']); } return implode(', ', $data); }
/** * Transform an `Address` instance into a string representation. * * @param Address $address * @param string $format * * @return string */ public function format(Address $address, $format) { $replace = [self::STREET_NUMBER => $address->getStreetNumber(), self::STREET_NAME => $address->getStreetName(), self::LOCALITY => $address->getLocality(), self::POSTAL_CODE => $address->getPostalCode(), self::SUB_LOCALITY => $address->getSubLocality(), self::COUNTRY => $address->getCountry()->getName(), self::COUNTRY_CODE => $address->getCountry()->getCode(), self::TIMEZONE => $address->getTimezone()]; for ($level = 1; $level <= AdminLevelCollection::MAX_LEVEL_DEPTH; $level++) { $replace[self::ADMIN_LEVEL . $level] = null; $replace[self::ADMIN_LEVEL_CODE . $level] = null; } foreach ($address->getAdminLevels() as $level => $adminLevel) { $replace[self::ADMIN_LEVEL . $level] = $adminLevel->getName(); $replace[self::ADMIN_LEVEL_CODE . $level] = $adminLevel->getCode(); } return strtr($format, $replace); }
private function formatStreet(Address $address) { return $address->getStreetName() . ($address->getStreetNumber() ? ' ' . $address->getStreetNumber() : ''); }
/** * Expects certain address types to be present in the given address. * * @param \Geocoder\Model\Address $address * @return bool */ public function isExpectedType(Address $address) { $expected = $this->_config['expect']; if (!$expected) { return true; } $adminLevels = $address->getAdminLevels(); $map = [static::TYPE_AAL1 => 1, static::TYPE_AAL2 => 2, static::TYPE_AAL3 => 3, static::TYPE_AAL4 => 4, static::TYPE_AAL5 => 5]; foreach ($expected as $expect) { switch ($expect) { case static::TYPE_COUNTRY: if ($address->getCountry() !== null) { return true; } break; case static::TYPE_AAL1: case static::TYPE_AAL2: case static::TYPE_AAL3: case static::TYPE_AAL4: case static::TYPE_AAL5: if ($adminLevels->has($map[$expect])) { return true; } break; case static::TYPE_LOC: if ($address->getLocality() !== null) { return true; } break; case static::TYPE_SUBLOC: if ($address->getSubLocality() !== null) { return true; } break; case static::TYPE_POSTAL: if ($address->getPostalCode() !== null) { return true; } break; case static::TYPE_ADDRESS: if ($address->getStreetName() !== null) { return true; } break; case static::TYPE_NUMBER: if ($address->getStreetNumber() !== null) { return true; } break; } } return false; }