You are here

public function LocationInputManager::getCoordinates in Geolocation Field 8.2

Same name and namespace in other branches
  1. 8.3 src/LocationInputManager.php \Drupal\geolocation\LocationInputManager::getCoordinates()

Get coordinates.

Parameters

array $form_values: Form values.

array $settings: Option settings.

mixed $context: Context.

Return value

array Centre value.

File

src/LocationInputManager.php, line 176

Class

LocationInputManager
Search plugin manager.

Namespace

Drupal\geolocation

Code

public function getCoordinates(array $form_values, array $settings, $context = NULL) {
  $coordinates = [];
  foreach ($settings as $option_id => $option) {

    // Ignore if not enabled.
    if (empty($option['enable'])) {
      continue;
    }
    if (!$this
      ->hasDefinition($option['location_input_id'])) {
      continue;
    }

    /** @var \Drupal\geolocation\LocationInputInterface $location_input_plugin */
    $location_input_plugin = $this
      ->createInstance($option['location_input_id']);
    if (empty($option['settings'])) {
      $option['settings'] = [];
    }
    $plugin_coordinates = $location_input_plugin
      ->getCoordinates($form_values, $option_id, $location_input_plugin
      ->getSettings($option['settings']), $context);
    if (!empty($plugin_coordinates)) {

      // Break on first found coordinates.
      return $plugin_coordinates;
    }
  }
  return $coordinates;
}