You are here

public function GeoProximityField::query in Geolocation Field 8.3

Called to add the field to a query.

Overrides ProximityField::query

File

modules/geolocation_geometry/src/Plugin/views/field/GeoProximityField.php, line 22

Class

GeoProximityField
Field handler for geolocation field.

Namespace

Drupal\geolocation_geometry\Plugin\views\field

Code

public function query() {

  /** @var \Drupal\views\Plugin\views\query\Sql $query */
  $query = $this->query;
  $center = $this
    ->getCenter();
  if (empty($center)) {
    return;
  }

  // Build the query expression.
  $expression = self::getGeometryProximityQueryFragment($this
    ->ensureMyTable(), $this->realField, $center['lat'], $center['lng']);

  // Get a placeholder for this query and save the field_alias for it.
  // Remove the initial ':' from the placeholder and avoid collision with
  // original field name.
  $this->field_alias = $query
    ->addField(NULL, $expression, substr($this
    ->placeholder(), 1));
}