1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- Raw layers are an addition to OpenLayers post-alpha7 which allow users to
- manually add points to a layer type. In comparison to the layer_type
- method of pulling in custom data, this allows you to 'push' data into the
- layer data array itself. In any case where reusability is a priority,
- layer_types should be utilized (as documented in LAYER_TYPES.txt). However,
- this is a quick method for success that may be more accessible to more
- developers.
- A brief, example-only implementation of an arbitrary layer is below.
- /**
- * Implementation of hook_ctools_plugin_api().
- * Required to provide layers
- */
- function geolocator_ctools_plugin_api($module, $api) {
- if ($module == "openlayers") {
- switch ($api) {
- case 'openlayers_layers':
- return array('version' => 1);
- }
- }
- }
- /**
- * One can have the 'features' => element point to a function
- * or be built on the fly within the _layers method. However,
- * close attention must be paid to ctools caching in order to
- * insure that dynamic data stays dynamic
- */
- function geolocator_openlayers_layers() {
- $layers = array();
- $layer = new stdClass();
- $layer->api_version = 1;
- $layer->name = 'afghanistan';
- $layer->title = 'One Point on Afghanistan';
- $layer->description = '';
- $layer->data = array(
- 'layer_type' => 'openlayers_layer_type_raw',
- 'projection' => array('900913'),
- 'features' => array(
- array(
- "wkt"=> "POINT(65 33)",
- "projection"=> "4326",
- "attributes"=>
- array(
- "name"=> "Afghanistan",
- "description"=> "248"
- )
- )
- )
- );
- $layers[$layer->name] = $layer;
- return $layers;
- }
- /**
- * map_preprocess_alter allows one to add a new layer to a map
- * before layers are rendered and data is pulled from them.
- */
- function geolocator_openlayers_map_preprocess_alter(&$map) {
- $map['layers']['afghanistan'] = 'afghanistan';
- $map['layer_activated']['afghanistan'] = 'afghanistan';
- $map['layer_switcher']['afghanistan'] = 'afghanistan';
- }
|