3
0
Fork 0
mirror of https://github.com/farmOS/farmOS.git synced 2024-02-23 11:37:38 +01:00
farmOS/modules/farm/farm_map/farm_map.default_openlayers_maps.inc

139 lines
4.1 KiB
PHP

<?php
/**
* @file
* farm_map.default_openlayers_maps.inc
*/
/**
* Implements hook_default_openlayers_maps().
*/
function farm_map_default_openlayers_maps() {
$export = array();
$ol_map = new stdClass();
$ol_map->disabled = FALSE; /* Edit this to true to make a default ol_map disabled initially */
$ol_map->api_version = 1;
$ol_map->machine_name = 'farm_map_geofield';
$ol_map->name = 'Farm Map: Geofield Widget';
$ol_map->description = 'Farm map for use in Geofield widgets.';
$ol_map->factory_service = 'openlayers.Map:OLMap';
$ol_map->options = array(
'width' => 'auto',
'height' => '500px',
'view' => array(
'center' => array(
'lat' => 0,
'lon' => 0,
),
'rotation' => 0,
'zoom' => 2,
'minZoom' => 0,
'maxZoom' => 24,
),
'layers' => array(
0 => 'farm_map_geofield_widget_layer_group',
),
'controls' => array(
0 => 'openlayers_control_zoom',
1 => 'openlayers_control_scaleline',
2 => 'farm_map_control_layer_switcher',
3 => 'farm_map_control_geolocate',
4 => 'farm_map_control_geocoder',
/**
* @todo
* https://www.drupal.org/node/2543186
*/
// 5 => 'openlayers_control_fullscreen',
),
'interactions' => array(
0 => 'openlayers_interaction_doubleclickzoom',
1 => 'openlayers_interaction_dragpan',
2 => 'openlayers_interaction_mousewheelzoom',
3 => 'openlayers_interaction_pinchzoom',
),
'components' => array(
0 => 'farm_map_component_geofield_widget',
1 => 'farm_map_component_geofield_zoom_to_source',
2 => 'farm_map_component_progress_bar',
),
'renderer' => 'canvas',
);
$export['farm_map_geofield'] = $ol_map;
$ol_map = new stdClass();
$ol_map->disabled = FALSE; /* Edit this to true to make a default ol_map disabled initially */
$ol_map->api_version = 1;
$ol_map->machine_name = 'farm_map_geofield_formatter';
$ol_map->name = 'Farm Map: Geofield Formatter';
$ol_map->description = 'Farm map for use in Geofield formatters.';
$ol_map->factory_service = 'openlayers.Map:OLMap';
$ol_map->options = array(
'width' => 'auto',
'height' => '500px',
'view' => array(
'center' => array(
'lat' => 0,
'lon' => 0,
),
'rotation' => 0,
'zoom' => 2,
'minZoom' => 0,
'maxZoom' => 24,
),
'layers' => array(
0 => 'farm_map_geofield_formatter_layer_group',
),
'controls' => array(
0 => 'openlayers_control_zoom',
1 => 'openlayers_control_scaleline',
2 => 'farm_map_control_layer_switcher',
3 => 'farm_map_control_geocoder',
/**
* @todo
* https://www.drupal.org/node/2543186
*/
// 4 => 'openlayers_control_fullscreen',
),
'interactions' => array(
0 => 'openlayers_interaction_doubleclickzoom',
1 => 'openlayers_interaction_dragpan',
2 => 'openlayers_interaction_mousewheelzoom',
3 => 'openlayers_interaction_pinchzoom',
),
'components' => array(
0 => 'farm_map_component_geofield_zoom_to_source',
1 => 'farm_map_component_progress_bar',
),
'renderer' => 'canvas',
);
$export['farm_map_geofield_formatter'] = $ol_map;
return $export;
}
/**
* Implements hook_default_openlayers_maps_alter().
*/
function farm_map_default_openlayers_maps_alter(&$maps) {
// This module implements hook_module_implements_alter() to ensure that this
// function always runs last, so we can ensure that any modifications made
// below will take priority over any other implementations of this hook.
// @see farm_map_module_implements_alter()
// Iterate through all maps.
foreach ($maps as &$map) {
// Only alter maps that have a farm_* namespace.
if (substr($map->machine_name, 0, 5) == 'farm_') {
// Add "base layers" group layer to the end all maps.
$map->options['layers'][] = 'farm_map_layer_group';
// Reverse the order of layers.
// This is necessary because of the following Openlayers module commit:
// http://cgit.drupalcode.org/openlayers/commit/?id=321aee3
$map->options['layers'] = array_reverse($map->options['layers']);
}
}
}