function openlayers_layer_sanity_check in Openlayers 7.2
Same name and namespace in other branches
- 6.2 openlayers.module \openlayers_layer_sanity_check()
Check layer to determine whether it has all the necessary attributes to be rendered. This is necessary because of API changes, and is a consolidation from other layer-error-checking in this module
Parameters
$layer: Layer object
$projection: Projection number (EPSG) to check compatibility with
$strict: reject invalid layers
Return value
boolean layer validity if strict is set, otherwise always true
2 calls to openlayers_layer_sanity_check()
- openlayers_error_check_map in ./
openlayers.module - Checks map array for incompatibilities or errors.
- openlayers_layer_load in ./
openlayers.module - Menu loader for layers. (%openlayers_layer)
1 string reference to 'openlayers_layer_sanity_check'
- openlayers_layers_load in ./
openlayers.module - Get all openlayers layers as objects.
File
- ./
openlayers.module, line 561 - Main OpenLayers API File
Code
function openlayers_layer_sanity_check($layer, $projection = FALSE, $strict = FALSE) {
// Handle layers after they've been rendered for a map
$layer = is_array($layer) ? (object) $layer : $layer;
if (!isset($layer->name)) {
return !$strict;
}
if (!isset($layer->data['projection']) || !is_array($layer->data['projection'])) {
watchdog('openlayers', 'Layer %name does not have a projection set.', array(
'%name' => $layer->name,
));
drupal_set_message(t('OpenLayers layers failed the sanity check. See the
<a href="@drupallog">Drupal log</a> for details', array(
'@drupallog' => url('admin/reports/dblog'),
)));
return !$strict;
}
if (!isset($layer->data['layer_type'])) {
watchdog('openlayers', 'Layer %name does not have its layer_type set.', array(
'%name' => $layer->name,
));
drupal_set_message(t('OpenLayers layers failed the sanity check. See the
<a href="@drupallog">Drupal log</a> for details', array(
'@drupallog' => url('admin/reports/dblog'),
)));
return !$strict;
}
if ($projection && empty($layer->data['vector']) && !in_array($projection, $layer->data['projection'])) {
watchdog('openlayers', 'The layer %layer_name cannot be reprojected to the map projection: EPSG: %map_proj', array(
'%layer_name' => $layer->name,
// TODO: $map is not defined.
'%map_proj' => $map['projection'],
));
return !$strict;
}
return TRUE;
}