Add a whereGeoDistance condition.

@see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-query.html Geo distance query

@param string $field
@param string|array $value
@param int|string $distance
@return $this
165409
public function whereGeoDistance($field, $value, $distance)
    {
        $this->wheres['must'][] = [
            'geo_distance' => [
                'distance' => $distance,
                $field => $value,
            ],
        ];

        return $this;
    }
103882
private function buildEquals($field, $value)
    {
        return $this::$open.$field.Operator::$equals.$value.$this::$close;
    }
1049327
public function offsetSet($field, $value)
    {
        if (isset($this->links[$field]['url'])) {
            $this->link_data[$field] = $value;
        } else {
            parent::offsetSet($field, $value);
        }
    }
775138
public function whereNotContains($field, $value)
    {
        foreach ($this->queries as $query) {
            $query->whereNotContains($field, $value);
        }

        return $this;
    }
596279
public function match($field, $value)
    {
        if(!$value instanceof Expr\ConditionalExpression) {
            $value = $this->buildPart($value);
        }
        return new Expr\TextComparisonExpression($field, $value, Expr\TextComparisonExpression::MATCH);
    }
39468
protected function setDataValue($data, $field, $value)
    {
        if (!isset($this->dataNamesMap[$field]['set'])) {

            if (true === $this->ignoreNotMappedFields) {
                return $this;
            }

            throw new \DomainException('Field have not mapping with Data instance (field: ' . $field . ')');
        }

        $method = $this->dataNamesMap[$field]['set'];

        $data->{$method}($value);

        return $this;
    }
881546
public function where($field, $table, $value) {
        static $i = 0;
        $sql = self::resolve_field($field, $table) . ' ';

        if ($value === null) {
            $sql .= 'IS NULL';

        } else {
            $param = 'where' . $i++;
            $sql .= " = :$param";
            $this->params[$param] = $value;
        }

        $this->where[] = $sql;
    }
727272
public function filterLte(string $field, $value): self
    {
        $this->filters[] = new IndexQueryFilter($field, IndexQueryFilterOperator::LESS_THAN_OR_EQUAL_TO(), $value);
        return $this;
    }
309016
public function notEq($field, $value) {
        if (is_array($value)) {
            $this->notIn($field, $value);

        } else if ($value === null) {
            $this->notNull($field);

        } else {
            $this->add($field, '!=', $value);
        }

        return $this;
    }
166252
public function notIn($field, $value) {
        $this->add($field, Expr::NOT_IN, (array) $value);

        return $this;
    }
118072
public function whereEq($field, $value)
    {
        foreach ($this->queries as $query) {
            $query->whereEq($field, $value);
        }

        return $this;
    }
1353191
public function like($field, $value) {
        $this->add($field, Expr::LIKE, $value);

        return $this;
    }
3788
public function addColumn($field, $value)
    {
        if (!isset($this->query['columns'])) {
            $this->query['columns'] = [];
        }
        $this->query['columns'][$field] = $value;
        return $this;
    }
664725
public function whereCmp($field, $operator, $value)
    {
        foreach ($this->queries as $query) {
            $query->whereCmp($field, $operator, $value);
        }

        return $this;
    }
157694
public function filterLt(string $field, $value): self
    {
        $this->filters[] = new IndexQueryFilter($field, IndexQueryFilterOperator::LESS_THAN(), $value);
        return $this;
    }
825324
public function orWhere($field, $condition = false, $operator = '=')
    {
        if (func_num_args() >= 2) {
            $this->where->addOrCondition($field, $condition, $operator);
        } else {
            $this->where->addOrCondition($field);
        }

        return $this;
    }
48258
public function lte($field, $value)
    {
        if(!$value instanceof Expr\ConditionalExpression) {
            $value = $this->buildPart($value);
        }
        return new Expr\ComparisonExpression($field, $value, Expr\ComparisonExpression::LTE);
    }