GeofieldProximityHandlerTrait.php in Geofield 8
File
src/Plugin/views/GeofieldProximityHandlerTrait.php
View source
<?php
namespace Drupal\geofield\Plugin\views;
trait GeofieldProximityHandlerTrait {
public function addQueryOrderBy($order) {
$this
->ensureMyTable();
$lat_alias = $this->realField . '_lat';
$lon_alias = $this->realField . '_lon';
$query = $this->query;
try {
$source_plugin = $this->proximitySourceManager
->createInstance($this->options['source'], $this->options['source_configuration']);
$source_plugin
->setViewHandler($this);
$source_plugin
->setUnits($this->options['units']);
if ($haversine_options = $source_plugin
->getHaversineOptions()) {
$haversine_options['destination_latitude'] = $this->tableAlias . '.' . $lat_alias;
$haversine_options['destination_longitude'] = $this->tableAlias . '.' . $lon_alias;
$query
->addOrderBy(NULL, geofield_haversine($haversine_options), $order, $this->tableAlias . '_' . $this->field);
}
} catch (\Exception $e) {
watchdog_exception('geofield', $e);
}
}
}