public function MapRenderEventSubscriber::onMapRender in farmOS 2.x
Same name in this branch
- 2.x modules/asset/land/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\farm_land\EventSubscriber\MapRenderEventSubscriber::onMapRender()
- 2.x modules/asset/structure/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\farm_structure\EventSubscriber\MapRenderEventSubscriber::onMapRender()
- 2.x modules/core/map/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\farm_map\EventSubscriber\MapRenderEventSubscriber::onMapRender()
- 2.x modules/core/quantity/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\quantity\EventSubscriber\MapRenderEventSubscriber::onMapRender()
- 2.x modules/core/ui/map/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\farm_ui_map\EventSubscriber\MapRenderEventSubscriber::onMapRender()
- 2.x modules/core/map/modules/mapbox/src/EventSubscriber/MapRenderEventSubscriber.php \Drupal\farm_map_mapbox\EventSubscriber\MapRenderEventSubscriber::onMapRender()
React to the MapRenderEvent.
Parameters
\Drupal\farm_map\Event\MapRenderEvent $event: The MapRenderEvent.
File
- modules/
asset/ land/ src/ EventSubscriber/ MapRenderEventSubscriber.php, line 61
Class
- MapRenderEventSubscriber
- An event subscriber for the MapRenderEvent.
Namespace
Drupal\farm_land\EventSubscriberCode
public function onMapRender(MapRenderEvent $event) {
// Get the map ID.
$map_id = $event
->getmapType()
->id();
// Add land type layers to dashboard map.
if ($map_id == 'dashboard') {
$layers = [];
// Define the parent group.
$group = $this
->t('Locations');
// Create a layer group for the asset type.
$layers['land'] = [
'group' => $group,
'label' => $this->landAssetType
->label(),
'is_group' => TRUE,
];
// Load land types.
$land_types = FarmLandType::loadMultiple();
// Create a layer for each sub-type.
foreach ($land_types as $land_type) {
/** @var \Drupal\farm_map\Entity\LayerStyleInterface $layer_style */
$conditions = [
'asset_type' => 'land',
'land_type' => $land_type
->id(),
];
$layer_style = $this->layerStyleLoader
->load($conditions);
if (!empty($layer_style)) {
$color = $layer_style
->get('color');
}
$layers['land_' . $land_type
->id()] = [
'group' => $this->landAssetType
->label(),
'label' => $land_type
->label(),
'asset_type' => 'land',
'filters' => [
'land_type_value[]' => $land_type
->id(),
],
'color' => $color ?? 'orange',
'zoom' => TRUE,
];
}
// Add layers to the map settings.
$settings[$event
->getMapTargetId()]['asset_type_layers'] = $layers;
$event
->addSettings($settings);
}
}