Location: PHPKode > scripts > Fantastic ElasticSearch > wordpress-fantastic-elasticsearch-1.1.2/lib/Elastica/Filter/GeoBoundingBox.php
<?php

/**
 * Geo bounding box filter
 *
 * @uses Elastica_Query_Abstract
 * @category Xodoa
 * @package Elastica
 * @author Fabian Vogler <hide@address.com>
 * @link http://www.elasticsearch.org/guide/reference/query-dsl/geo-bounding-box-filter.html
 */
class Elastica_Filter_GeoBoundingBox extends Elastica_Filter_Abstract
{
    /**
     * Construct GeoBoundingBox filter
     *
     * @param string $key         Key
     * @param array  $coordinates Array with top left coordinate as first and bottom right coordinate as second element
     */
    public function __construct($key, array $coordinates)
    {
        $this->addCoordinates($key, $coordinates);
    }

    /**
     * Add coordinates
     *
     * @param  string                         $key         Key
     * @param  array                          $coordinates Array with top left coordinate as first and bottom right coordinate as second element
     * @throws Elastica_Exception_Invalid     If $coordinates doesn't have two elements
     * @return Elastica_Filter_GeoBoundingBox Current object
     */
    public function addCoordinates($key, array $coordinates)
    {
        if (!isset($coordinates[0]) || !isset($coordinates[1])) {
            throw new Elastica_Exception_Invalid('expected $coordinates to be an array with two elements');
        }

        $this->setParam($key, array(
            'top_left' => $coordinates[0],
            'bottom_right' => $coordinates[1]
        ));

        return $this;
    }
}
Return current item: Fantastic ElasticSearch