olp-cpp-sdk 1.24.0
Loading...
Searching...
No Matches
GeoCoordinates3d.h
1/*
2 * Copyright (C) 2019-2020 HERE Europe B.V.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * SPDX-License-Identifier: Apache-2.0
17 * License-Filename: LICENSE
18 */
19
20#pragma once
21
22#include <olp/core/CoreApi.h>
23#include <olp/core/geo/coordinates/GeoCoordinates.h>
24
25namespace olp {
26namespace geo {
27
31class CORE_API GeoCoordinates3d {
32 public:
39
48 GeoCoordinates3d(double latitude_radians, double longitude_radians,
49 double altitude_meters);
50
60 GeoCoordinates3d(double latitude_degrees, double longitude_degrees,
61 double altitude_meters, DegreeType degrees);
62
71 explicit GeoCoordinates3d(const GeoCoordinates& geo_coordinates);
72
80 GeoCoordinates3d(const GeoCoordinates& geo_coordinates,
81 double altitude_meters);
82
93 static GeoCoordinates3d FromDegrees(double latitude, double longitude,
94 double altitude = 0.0);
95
106 static GeoCoordinates3d FromRadians(double latitude, double longitude,
107 double altitude = 0.0);
108
115
121 void SetGeoCoordinates(const GeoCoordinates& geo_coordinates);
122
128 double GetLatitude() const;
129
135 void SetLatitude(double latitude_radians);
136
142 double GetLongitude() const;
143
149 void SetLongitude(double longitude_radians);
150
156 double GetLatitudeDegrees() const;
157
163 void setLatitudeDegrees(double latitude_degrees);
164
170 double GetLongitudeDegrees() const;
171
177 void SetLongitudeDegrees(double longitude_degrees);
178
184 double GetAltitude() const;
185
191 void SetAltitude(double altitude_meters);
192
199 explicit operator bool() const;
200
207 bool IsValid() const;
208
209 protected:
213 double altitude_;
215 static const double kNaN_;
216};
217
218} // namespace geo
219} // namespace olp
Geodetic coordinates with longitude, latitude, and altitude.
Definition GeoCoordinates3d.h:31
double GetLongitudeDegrees() const
Gets the longitude in degrees.
void SetLongitude(double longitude_radians)
Sets the longitude in radians.
GeoCoordinates3d(const GeoCoordinates &geo_coordinates, double altitude_meters)
Creates a GeoCoordinates3d instance from 2D coordinates and altitude.
static const double kNaN_
The const that signalizes invalid altitudes.
Definition GeoCoordinates3d.h:215
GeoCoordinates3d(double latitude_degrees, double longitude_degrees, double altitude_meters, DegreeType degrees)
Creates a GeoCoordinates3d instance from latitude, longitude, and altitude.
const GeoCoordinates & GetGeoCoordinates() const
Gets the latitude and longitude as 2D geodetic coordinates.
double GetAltitude() const
Gets the altitude in meters.
void SetLongitudeDegrees(double longitude_degrees)
Sets the longitude in degrees.
GeoCoordinates geo_coordinates_
The 2D geodetic coordinates.
Definition GeoCoordinates3d.h:211
void SetLatitude(double latitude_radians)
Sets the latitude in radians.
void setLatitudeDegrees(double latitude_degrees)
Sets the latitude in degrees.
void SetGeoCoordinates(const GeoCoordinates &geo_coordinates)
Sets the latitude and longitude from the 2D geodetic coordinates.
void SetAltitude(double altitude_meters)
Sets the altitude in meters.
GeoCoordinates3d()
Creates a GeoCoordinates3d instance with invalid geodetic coordinates.
double GetLatitude() const
Gets the latitude in radians.
GeoCoordinates3d(const GeoCoordinates &geo_coordinates)
Creates a GeoCoordinates3d instance from 2D coordinates with undefined altitude.
GeoCoordinates3d(double latitude_radians, double longitude_radians, double altitude_meters)
Creates a GeoCoordinates3d instance from latitude, longitude, and altitude.
bool IsValid() const
Checks whether the coordinates and altitude are valid.
double GetLatitudeDegrees() const
Gets the latitude in degrees.
static GeoCoordinates3d FromRadians(double latitude, double longitude, double altitude=0.0)
Creates a GeoCoordinates3d instance from latitude, longitude, and altitude.
double GetLongitude() const
Gets the longitude in radians.
static GeoCoordinates3d FromDegrees(double latitude, double longitude, double altitude=0.0)
Creates a GeoCoordinates3d instance from latitude, longitude, and altitude.
double altitude_
The altitude in meters.
Definition GeoCoordinates3d.h:213
A geographic location that uses the WGS84 Coordinate System.
Definition GeoCoordinates.h:38
Rules all the other namespaces.
Definition AppleSignInProperties.h:24
Definition Types.h:49