1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// This file is @generated by prost-build.
/// A latitude-longitude viewport, represented as two diagonally opposite `low`
/// and `high` points. A viewport is considered a closed region, i.e. it includes
/// its boundary. The latitude bounds must range between -90 to 90 degrees
/// inclusive, and the longitude bounds must range between -180 to 180 degrees
/// inclusive. Various cases include:
///
///   - If `low` = `high`, the viewport consists of that single point.
///
///   - If `low.longitude` > `high.longitude`, the longitude range is inverted
///     (the viewport crosses the 180 degree longitude line).
///
///   - If `low.longitude` = -180 degrees and `high.longitude` = 180 degrees,
///     the viewport includes all longitudes.
///
///   - If `low.longitude` = 180 degrees and `high.longitude` = -180 degrees,
///     the longitude range is empty.
///
///   - If `low.latitude` > `high.latitude`, the latitude range is empty.
///
/// Both `low` and `high` must be populated, and the represented box cannot be
/// empty (as specified by the definitions above). An empty viewport will result
/// in an error.
///
/// For example, this viewport fully encloses New York City:
///
/// {
///      "low": {
///          "latitude": 40.477398,
///          "longitude": -74.259087
///      },
///      "high": {
///          "latitude": 40.91618,
///          "longitude": -73.70018
///      }
/// }
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Viewport {
    /// Required. The low point of the viewport.
    #[prost(message, optional, tag = "1")]
    pub low: ::core::option::Option<super::super::r#type::LatLng>,
    /// Required. The high point of the viewport.
    #[prost(message, optional, tag = "2")]
    pub high: ::core::option::Option<super::super::r#type::LatLng>,
}