You are here

function geolocation_proximity_views_handler_field_distance::query in Geolocation Proximity 7.2

Called to add the field to a query.

Overrides views_handler_field::query

File

handlers/geolocation_proximity_views_handler_field_distance.inc, line 230
Definition of geolocation_proximity_views_handler_field_distance.

Class

geolocation_proximity_views_handler_field_distance
Distance field handler for views.

Code

function query() {
  if (!$this->options['use_filter']) {
    $this
      ->ensure_my_table();
    $this
      ->add_additional_fields();
    $table = $this->table_alias;
    $field_id = $this->geolocation_proximity_field_id;

    // Prepare filter values.
    $filter_lat = $this->options['location']['latitude'];
    $filter_lng = $this->options['location']['longitude'];

    // Prepare field values.
    $field_latsin = "{$table}.{$field_id}_lat_sin";
    $field_latcos = "{$table}.{$field_id}_lat_cos";
    $field_lng = "{$table}.{$field_id}_lng_rad";

    // Build the query.
    $sql = _proximity_sql_fragment($filter_lat, $filter_lng, $field_latsin, $field_latcos, $field_lng);
    $this->query
      ->add_field(NULL, $sql, $this->field_alias);
  }
}