Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
geo_bounding_box_query.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/*
3
* Copyright 2023-Present Couchbase, Inc.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#pragma once
19
20
#include <
couchbase/geo_point.hxx
>
21
#include <
couchbase/search_query.hxx
>
22
23
#include <optional>
24
#include <string>
25
26
namespace
couchbase
27
{
47
class
geo_bounding_box_query
:
public
search_query
48
{
49
public
:
59
geo_bounding_box_query
(
geo_point
top_left,
geo_point
bottom_right)
60
: top_left_{ top_left }
61
, bottom_right_{ bottom_right }
62
{
63
}
64
76
geo_bounding_box_query
(
double
top_left_latitude,
77
double
top_left_longitude,
78
double
bottom_right_latitude,
79
double
bottom_right_longitude)
80
: top_left_{
geo_point
{ top_left_latitude, top_left_longitude } }
81
, bottom_right_{
geo_point
{ bottom_right_latitude, bottom_right_longitude } }
82
{
83
}
84
95
auto
field
(std::string field_name) ->
geo_bounding_box_query
&
96
{
97
field_ = std::move(field_name);
98
return
*
this
;
99
}
100
107
[[nodiscard]]
auto
encode
() const -> encoded_search_query override;
108
109
private:
110
geo_point
top_left_;
111
geo_point
bottom_right_;
112
std::optional<std::
string
> field_{};
113
};
114
}
// namespace couchbase
couchbase::geo_bounding_box_query::geo_bounding_box_query
geo_bounding_box_query(geo_point top_left, geo_point bottom_right)
Create a new geo bounding box query.
Definition
geo_bounding_box_query.hxx:59
couchbase::geo_bounding_box_query::field
auto field(std::string field_name) -> geo_bounding_box_query &
If a field is specified, only terms in that field will be matched.
Definition
geo_bounding_box_query.hxx:95
couchbase::geo_bounding_box_query::encode
auto encode() const -> encoded_search_query override
couchbase::geo_bounding_box_query::geo_bounding_box_query
geo_bounding_box_query(double top_left_latitude, double top_left_longitude, double bottom_right_latitude, double bottom_right_longitude)
Create a new geo distance query.
Definition
geo_bounding_box_query.hxx:76
couchbase::search_query::search_query
search_query()=default
geo_point.hxx
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
search_query.hxx
couchbase::geo_point
Tuple representing geographical point.
Definition
geo_point.hxx:28
couchbase
geo_bounding_box_query.hxx
Generated by
1.17.0