![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Географическая позиция, представленная в одной из нескольких систем координат. Подробнее...
#include <pigeoposition.h>
Открытые типы | |
| enum | CoordinateSystem { } |
| Система координат, используемая для хранимых компонент. Подробнее... | |
Открытые члены | |
| PIGeoPosition () | |
| Создает нулевую позицию в декартовой системе координат. | |
| PIGeoPosition (double a, double b, double c, CoordinateSystem s=Cartesian, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) | |
| Создает позицию из трех компонент в выбранной системе координат. | |
| PIGeoPosition (PIMathVectorT3d v, CoordinateSystem s=Cartesian, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) | |
| Создает позицию из существующего трехмерного вектора. | |
| PIGeoPosition & | transformTo (CoordinateSystem sys) |
| Преобразует хранимое значение в другую систему координат на месте. | |
| PIGeoPosition & | asGeodetic () |
| Преобразует позицию в геодезические координаты. | |
| PIGeoPosition & | asGeodetic (const PIEllipsoidModel &ell) |
| Переключает эллипсоид и преобразует позицию в геодезические координаты. | |
| PIGeoPosition & | asECEF () |
| Преобразует позицию в декартовы координаты ECEF. | |
| double | x () const |
| Возвращает компоненту X в декартовых координатах ECEF. | |
| double | y () const |
| Возвращает компоненту Y в декартовых координатах ECEF. | |
| double | z () const |
| Возвращает компоненту Z в декартовых координатах ECEF. | |
| double | latitudeGeodetic () const |
| Возвращает геодезическую широту в градусах. | |
| double | latitudeGeocentric () const |
| Возвращает геоцентрическую широту в градусах. | |
| double | longitude () const |
| Возвращает долготу в градусах. | |
| double | theta () const |
| Возвращает сферический угол тета в градусах (угол от оси Z). | |
| double | phi () const |
| Возвращает сферический угол фи в градусах (угол в плоскости XY от оси X). | |
| double | radius () const |
| Возвращает радиус в метрах для сферического или геоцентрического представления (расстояние от центра Земли). | |
| double | height () const |
| Возвращает геодезическую высоту над эллипсоидом в метрах. | |
| void | setEllipsoidModel (const PIEllipsoidModel &ell) |
| Устанавливает модель эллипсоида, используемую в геодезических преобразованиях. | |
| PIGeoPosition & | setGeodetic (double lat, double lon, double ht, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Устанавливает геодезические широту, долготу и высоту в градусах и метрах. | |
| PIGeoPosition & | setGeocentric (double lat, double lon, double rad) |
| Устанавливает геоцентрические широту, долготу и радиус в градусах и метрах. | |
| PIGeoPosition & | setSpherical (double theta, double phi, double rad) |
| Устанавливает сферические тета, фи и радиус в градусах и метрах. | |
| PIGeoPosition & | setECEF (double x, double y, double z) |
| Устанавливает декартовы координаты ECEF в метрах. | |
| double | radiusEarth () const |
| Возвращает радиус эллипсоида для этой позиции. | |
| double | range (const PIGeoPosition &p) const |
| Возвращает прямую дальность до другой позиции в метрах. | |
| double | elevation (const PIGeoPosition &p) const |
| Вычисляет угол места до другой позиции. | |
| double | elevationGeodetic (const PIGeoPosition &p) const |
| Вычисляет угол места относительно локальной геодезической вертикали. | |
| double | azimuth (const PIGeoPosition &p) const |
| Вычисляет азимут на другую позицию. | |
| double | azimuthGeodetic (const PIGeoPosition &p) const |
| Вычисляет азимут по локальным геодезическим осям север-восток. | |
| double | getCurvMeridian () const |
| Возвращает радиус кривизны меридиана для этой позиции. | |
| double | getCurvPrimeVertical () const |
| Возвращает радиус кривизны первого вертикала для этой позиции. | |
| const PIMathVectorT3d & | vector () const |
| Возвращает базовый трехкомпонентный вектор в текущей системе. | |
| PIGeoPosition & | operator= (const PIMathVectorT3d &v) |
| Присваивает координаты из обычного 3D-вектора без изменения метаданных. | |
| PIGeoPosition & | operator-= (const PIGeoPosition &right) |
| Вычитает другую позицию после перевода обоих операндов в декартовы координаты. | |
| PIGeoPosition & | operator+= (const PIGeoPosition &right) |
| Складывает другую позицию после перевода обоих операндов в декартовы координаты. | |
| bool | operator== (const PIGeoPosition &right) const |
| Сравнивает две позиции с учетом настроенного допуска и модели эллипсоида. | |
| bool | operator!= (const PIGeoPosition &right) const |
| Возвращает true, если позиции не равны. | |
Открытые члены унаследованные от PIMathVectorT< Size, Type > | |
| PIMathVectorT (const Type &v=Type()) | |
| Создает вектор и заполняет все координаты значением v. | |
| PIMathVectorT (const PIVector< Type > &val) | |
| Создает вектор фиксированного размера из динамического вектора той же длины. | |
| PIMathVectorT (std::initializer_list< Type > init_list) | |
| Создает вектор из списка инициализации ровно с Size элементами. | |
| constexpr uint | size () const |
| Возвращает размерность вектора, заданную во время компиляции. | |
| _CVector & | fill (const Type &v) |
| Заполняет все координаты значением v. | |
| _CVector & | move (const Type &v) |
| Прибавляет v к каждой координате. | |
| _CVector & | move (const _CVector &v) |
| Прибавляет другой вектор покомпонентно. | |
| _CVector & | swapElements (uint f, uint s) |
| Меняет местами две координаты. | |
| Type | lengthSqr () const |
| Возвращает квадрат евклидовой длины. | |
| Type | length () const |
| Возвращает евклидову длину. Доступно для арифметических типов элементов. | |
| Type | manhattanLength () const |
| Возвращает манхэттенскую длину. Доступно для арифметических типов элементов. | |
| Type | angleCos (const _CVector &v) const |
| Возвращает косинус угла к вектору v. | |
| Type | angleSin (const _CVector &v) const |
| Возвращает синус угла к вектору v. | |
| Type | angleRad (const _CVector &v) const |
| Возвращает угол к вектору v в радианах. | |
| Type | angleDeg (const _CVector &v) const |
| Возвращает угол к вектору v в градусах. | |
| Type | angleElevation (const _CVector &v) const |
| Возвращает угол возвышения от этой точки к v в градусах. | |
| _CVector | projection (const _CVector &v) |
| Возвращает проекцию этого вектора на v. | |
| _CVector & | normalize () |
| Нормализует этот вектор на месте. | |
| _CVector | normalized () |
| Возвращает нормализованную копию этого вектора. | |
| bool | isNull () const |
| Возвращает true, если все координаты равны нулю. | |
| bool | isOrtho (const _CVector &v) const |
| Возвращает true, если этот вектор ортогонален v. | |
| Type & | operator[] (uint index) |
| Возвращает доступ на запись к координате. | |
| const Type & | operator[] (uint index) const |
| Возвращает доступ только для чтения к координате. | |
| Type | at (uint index) const |
| Возвращает координату по значению. | |
| Type & | element (uint index) |
| Возвращает доступ на запись к координате. | |
| const Type & | element (uint index) const |
| Возвращает доступ только для чтения к координате. | |
| _CVector & | operator= (const Type &v) |
| Присваивает всем координатам одно и то же значение. | |
| bool | operator== (const _CVector &v) const |
| Сравнивает два вектора покомпонентно. | |
| bool | operator!= (const _CVector &v) const |
| Возвращает true, если векторы различаются хотя бы по одной координате. | |
| void | operator+= (const _CVector &v) |
| Прибавляет v покомпонентно. | |
| void | operator-= (const _CVector &v) |
| Вычитает v покомпонентно. | |
| void | operator*= (const Type &v) |
| Умножает все координаты на v. | |
| void | operator/= (const Type &v) |
| Делит все координаты на v. | |
| _CVector | operator- () const |
| Возвращает вектор с противоположным знаком. | |
| _CVector | operator+ (const _CVector &v) const |
| Возвращает покомпонентную сумму с v. | |
| _CVector | operator- (const _CVector &v) const |
| Возвращает покомпонентную разность с v. | |
| _CVector | operator* (const Type &v) const |
| Возвращает копию, масштабированную на v. | |
| _CVector | operator/ (const Type &v) const |
| Возвращает копию, поделенную на v. | |
| _CVector | cross (const _CVector &v) const |
| Возвращает 3D-векторное произведение с v. | |
| Type | dot (const _CVector &v) const |
| Возвращает скалярное произведение с v. | |
| _CVector | mul (const _CVector &v) const |
| Возвращает покомпонентное произведение с v. | |
| _CVector | mul (const Type &v) const |
| Возвращает копию, масштабированную на v. | |
| _CVector | div (const _CVector &v) const |
| Возвращает покомпонентное деление на v. | |
| _CVector | div (const Type &v) const |
| Возвращает копию, поделенную на v. | |
| PIMathMatrixT< 1, Size, Type > | transposed () const |
| Возвращает вектор как матрицу 1 x Size. | |
| Type | distToLine (const _CVector &lp0, const _CVector &lp1) |
| Возвращает расстояние от этой 2D-точки до прямой через lp0 и lp1. | |
| template<uint Size1, typename Type1 > | |
| PIMathVectorT< Size1, Type1 > | turnTo () const |
| Преобразует этот вектор к другой размерности и типу элементов. | |
| template<typename T > | |
| PIMathVectorT< Size, T > | toType () const |
| Возвращает этот вектор с другим типом элементов. | |
| template<uint SubSize> | |
| PIMathVectorT< SubSize, Type > | subvector (int offset=0) const |
| Возвращает подвектор, начиная с offset, и заполняет нулями координаты вне исходного диапазона. | |
| template<uint SubSize> | |
| PIMathVectorT< Size, Type > & | setSubvector (int index, const PIMathVectorT< SubSize, Type > &v) |
| Записывает v в этот вектор, начиная с index, и игнорирует координаты вне диапазона назначения. | |
Открытые статические члены | |
| static double | setPositionTolerance (const double tol) |
| Устанавливает допуск по умолчанию в метрах. | |
| static double | getPositionTolerance () |
| Возвращает допуск по умолчанию в метрах. | |
| static void | convertSphericalToCartesian (const PIMathVectorT3d &tpr, PIMathVectorT3d &xyz) |
| Преобразует сферические координаты в декартовы координаты ECEF. | |
| static void | convertCartesianToSpherical (const PIMathVectorT3d &xyz, PIMathVectorT3d &tpr) |
| Преобразует декартовы координаты ECEF в сферические координаты. | |
| static void | convertCartesianToGeodetic (const PIMathVectorT3d &xyz, PIMathVectorT3d &llh, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Преобразует декартовы координаты ECEF в геодезические координаты. | |
| static void | convertGeodeticToCartesian (const PIMathVectorT3d &llh, PIMathVectorT3d &xyz, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Преобразует геодезические координаты в декартовы координаты ECEF. | |
| static void | convertCartesianToGeocentric (const PIMathVectorT3d &xyz, PIMathVectorT3d &llr) |
| Преобразует декартовы координаты ECEF в геоцентрические координаты. | |
| static void | convertGeocentricToCartesian (const PIMathVectorT3d &llr, PIMathVectorT3d &xyz) |
| Преобразует геоцентрические координаты в декартовы координаты ECEF. | |
| static void | convertGeocentricToGeodetic (const PIMathVectorT3d &llr, PIMathVectorT3d &llh, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Преобразует геоцентрические координаты в геодезические координаты. | |
| static void | convertGeodeticToGeocentric (const PIMathVectorT3d &llh, PIMathVectorT3d &llr, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Преобразует геодезические координаты в геоцентрические координаты. | |
| static double | radiusEarth (double geolat, PIEllipsoidModel ell=PIEllipsoidModel::WGS84Ellipsoid()) |
| Возвращает радиус эллипсоида на заданной геодезической широте. | |
| static double | range (const PIGeoPosition &a, const PIGeoPosition &b) |
| Возвращает прямую дальность между двумя позициями в метрах. | |
Открытые статические члены унаследованные от PIMathVectorT< Size, Type > | |
| static _CVector | fromTwoPoints (const _CVector &st, const _CVector &fn) |
| Строит вектор смещения от точки st к точке fn. | |
| static _CVector | cross (const _CVector &v1, const _CVector &v2) |
| Возвращает векторное произведение v1 и v2. | |
| static Type | dot (const _CVector &v1, const _CVector &v2) |
| Возвращает скалярное произведение v1 и v2. | |
| static _CVector | mul (const _CVector &v1, const _CVector &v2) |
| Возвращает покомпонентное произведение v1 и v2. | |
| static _CVector | mul (const Type &v1, const _CVector &v2) |
| Возвращает v2, масштабированный на v1. | |
| static _CVector | mul (const _CVector &v1, const Type &v2) |
| Возвращает v1, масштабированный на v2. | |
| static _CVector | div (const _CVector &v1, const _CVector &v2) |
| Возвращает покомпонентное деление v1 на v2. | |
| static _CVector | div (const _CVector &v1, const Type &v2) |
| Возвращает v1, поделенный на скаляр v2. | |
Статические открытые данные | |
| static const double | one_cm_tolerance = 0.01 |
| Допуск в один сантиметр в метрах. | |
| static const double | one_mm_tolerance = 0.001 |
| Допуск в один миллиметр в метрах. | |
| static const double | one_um_tolerance = 0.000001 |
| Допуск в один микрон в метрах. | |
| static double | position_tolerance = PIGeoPosition::one_mm_tolerance |
| Допуск по умолчанию для сравнений и вырожденных случаев, в метрах. | |
Географическая позиция, представленная в одной из нескольких систем координат.
Этот класс предоставляет функциональность для хранения и преобразования между различными системами координат, включая геодезическую, геоцентрическую, декартову и сферическую. Он поддерживает различные модели эллипсоида для представления Земли.