Пример #1
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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /**
  * 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;
 }