You are here

openlayers_views_vector.inc in Openlayers 6.2

OpenLayers Views Vector Layer Type

File

modules/openlayers_views/includes/layer_types/openlayers_views_vector.inc
View source
<?php

/**
 * @file
 * OpenLayers Views Vector Layer Type
 */
class openlayers_layer_type_openlayers_views_vector extends openlayers_layer_type {

  /**
   * Provide initial values for options.
   */
  function options_init() {
    return array(
      'layer_type' => 'openlayers_layer_type_openlayers_views_vector',
      'layer_handler' => 'openlayers_views_vector',
      'vector' => TRUE,
    );
  }

  /**
   * Options form which generates layers
   */
  function options_form() {
    return array();
  }

  /**
   * Get features for this view
   *
   * @param $view_name
   *   the view name
   * @param $display_name
   *   the view display name
   * @return
   *   array of features
   */
  function get_features($view_name, $display_name) {
    if ($view = views_get_view($view_name)) {
      $args = array();

      // Retrieve args/filters from current view
      // to pass on to our vector layer.
      $current_view = views_get_current_view();
      if (isset($current_view)) {
        $args = isset($current_view->args) ? $current_view->args : array();
        if (isset($current_view->exposed_input)) {
          $view
            ->set_exposed_input($current_view->exposed_input);
        }
      }
      $features = $view
        ->execute_display($display_name, $args);

      // Get dynamic title from view
      $this->title = $view
        ->get_title();
      $view
        ->destroy();
    }
    return isset($features) ? $features : array();
  }

  /**
   * Render.
   */
  function render(&$map) {
    drupal_add_js(drupal_get_path('module', 'openlayers_views') . '/includes/layer_types/openlayers_views_vector.js');
    $features = $this
      ->get_features($this->data['views']['view'], $this->data['views']['display']);
    $this->data['features'] = $features;
    return $this->options;
  }

}

Classes

Namesort descending Description
openlayers_layer_type_openlayers_views_vector @file OpenLayers Views Vector Layer Type