function geofield_handler_sort::query in Geofield 7.2
Called to add the sort to a query.
Overrides views_handler_sort::query
File
- views/
handlers/ geofield_handler_sort.inc, line 9 - Distance sort implementation.
Class
- geofield_handler_sort
- @file Distance sort implementation.
Code
function query() {
$this
->ensure_my_table();
$lat_alias = $this->table_alias . '.' . $this->definition['field_name'] . '_lat';
$lon_alias = $this->table_alias . '.' . $this->definition['field_name'] . '_lon';
$proximityPlugin = geofield_proximity_load_plugin($this->options['source']);
$options = $proximityPlugin
->getSourceValue($this);
if ($options != FALSE) {
$haversine_options = array(
'origin_latitude' => $options['latitude'],
'origin_longitude' => $options['longitude'],
'destination_latitude' => $lat_alias,
'destination_longitude' => $lon_alias,
'earth_radius' => GEOFIELD_KILOMETERS,
);
$this->query
->add_orderby(NULL, geofield_haversine($haversine_options), $this->options['order'], $this->table_alias . '_geofield_distance');
}
}