You are here

function _leaflet_more_maps_assemble_custom_map_info in Leaflet More Maps 2.1.x

Same name and namespace in other branches
  1. 8 leaflet_more_maps.module \_leaflet_more_maps_assemble_custom_map_info()
  2. 7 leaflet_more_maps.module \_leaflet_more_maps_assemble_custom_map_info()

Assemble custom map info based on selected layers.

Parameters

string $custom_map_key:

array $selected_layer_keys:

array $map_info:

array $default_settings:

false $reverse_order:

1 call to _leaflet_more_maps_assemble_custom_map_info()
leaflet_more_maps_leaflet_map_info in ./leaflet_more_maps.module
Implements hook_leaflet_map_info().

File

./leaflet_more_maps.module, line 569

Code

function _leaflet_more_maps_assemble_custom_map_info(string $custom_map_key, array $selected_layer_keys, array &$map_info, array $default_settings = [], $reverse_order = FALSE) {
  if (empty($custom_map_key) || empty($selected_layer_keys)) {
    return;
  }
  $map_info["~{$custom_map_key}"] = [
    'label' => $custom_map_key,
    'description' => t('Custom defined map with layer switcher'),
    'layers' => [],
  ];
  $selected_layer_keys = array_filter($selected_layer_keys);
  $i = $reverse_order ? count($selected_layer_keys) : 1;
  foreach ($map_info as $map_key => $map) {
    foreach ($map['layers'] as $layer_key => $layer) {

      // Unique.
      $custom_layer_key = "{$map_key} {$layer_key}";
      if (in_array($custom_layer_key, $selected_layer_keys)) {
        $layer_switcher_key = t('layer') . " #{$i}";
        $map_info["~{$custom_map_key}"]['layers'][$layer_switcher_key] = $layer;
        $i = $reverse_order ? $i - 1 : $i + 1;
      }
    }
  }
  if ($reverse_order) {
    $map_info["~{$custom_map_key}"]['layers'] = array_reverse($map_info["~{$custom_map_key}"]['layers']);
  }
  $has_layer_control = count($map_info["~{$custom_map_key}"]['layers']) > 1;
  $map_info["~{$custom_map_key}"]['settings'] = [
    'layerControl' => $has_layer_control,
  ] + $default_settings;
}