geolocation-8.x-3.x-dev/modules/geolocation_google_maps/src/GoogleCountryFormattingBase.php

modules/geolocation_google_maps/src/GoogleCountryFormattingBase.php
<?php

namespace Drupal\geolocation_google_maps;

use Drupal\geolocation\GeocoderCountryFormattingBase;
use Drupal\geolocation\GeocoderCountryFormattingInterface;

/**
 * Defines an interface for geolocation google geocoder country  plugins.
 */
abstract class GoogleCountryFormattingBase extends GeocoderCountryFormattingBase implements GeocoderCountryFormattingInterface {

  /**
   * {@inheritdoc}
   */
  public function format(array $atomics): ?array {
    $address_elements = parent::format($atomics);

    if (
      isset($atomics['streetNumber'])
      && isset($atomics['route'])
      && $atomics['streetNumber']
      && $atomics['route']
    ) {
      $address_elements['addressLine1'] = $atomics['streetNumber'] . ' ' . $atomics['route'];
    }
    elseif (
      isset($atomics['route'])
      && $atomics['route']
    ) {
      $address_elements['addressLine1'] = $atomics['route'];
    }
    elseif (
      isset($atomics['premise'])
      && $atomics['premise']
    ) {
      $address_elements['addressLine1'] = $atomics['premise'];
    }

    if (
      isset($atomics['locality'])
      && isset($atomics['postalTown'])
      && $atomics['locality']
      && $atomics['postalTown']
      && $atomics['locality'] !== $atomics['postalTown']
    ) {
      $address_elements['addressLine2'] = $atomics['locality'];
    }
    elseif (
      empty($atomics['locality'])
      && isset($atomics['neighborhood'])
      && $atomics['neighborhood']
    ) {
      $address_elements['addressLine2'] = $atomics['neighborhood'];
    }

    if (
      isset($atomics['locality'])
      && $atomics['locality']
    ) {
      $address_elements['locality'] = $atomics['locality'];
    }
    elseif (
      isset($atomics['postalTown'])
      && $atomics['postalTown']
    ) {
      $address_elements['locality'] = $atomics['postalTown'];
    }
    elseif (
      empty($atomics['locality'])
      && isset($atomics['political'])
      && $atomics['political']
    ) {
      $address_elements['locality'] = $atomics['political'];
    }

    if (
      isset($atomics['postalCode'])
      && $atomics['postalCode']
    ) {
      $address_elements['postalCode'] = $atomics['postalCode'];
    }

    if (
      isset($atomics['postalCode'])
      && $atomics['postalCode']
    ) {
      $address_elements['postalCode'] = $atomics['postalCode'];
    }

    if (
      isset($atomics['administrativeArea'])
      && $atomics['administrativeArea']
    ) {
      $address_elements['administrativeArea'] = $atomics['administrativeArea'];
    }

    if (
      isset($atomics['countryCode'])
      && $atomics['countryCode']
    ) {
      $address_elements['countryCode'] = $atomics['countryCode'];
    }

    return $address_elements;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc