加载中...
搜索中...
无匹配项
projection_parameters.hpp
前往此文件的文档。
1/*
2 * 版权所有 (c) 2023, NVIDIA CORPORATION。
3 *
4 * 根据 Apache 许可证 2.0 版本 ("许可证") 获得许可;
5 * 除非符合许可证的规定,否则您不得使用此文件。
6 * 您可以在以下位置获得许可证的副本
7 *
8 * https://apache.ac.cn/licenses/LICENSE-2.0
9 *
10 * 除非适用法律要求或书面同意,否则软件是
11 * 根据许可证分发,并且是基于“现状”分发,
12 * 不附带任何明示或默示的担保或条件。
13 * 有关管理权限和
14 * 许可证限制的特定语言,请参阅许可证。
15 */
16
17#pragma once
18
19#include <cuproj/ellipsoid.hpp>
20
21namespace cuproj {
22
27
31enum class hemisphere { NORTH, SOUTH };
32
41template <typename T>
42struct projection_parameters {
43 projection_parameters(
44 ellipsoid<T> const& e, int utm_zone, hemisphere utm_hemisphere, T lam0, T prime_meridian_offset)
45 : ellipsoid_(e),
46 utm_zone_(utm_zone),
47 utm_hemisphere_{utm_hemisphere},
48 lam0_(lam0),
49 prime_meridian_offset_(prime_meridian_offset)
50 {
51 }
52
54 int utm_zone_{-1};
55 hemisphere utm_hemisphere_{hemisphere::NORTH};
56 T lam0_{};
58
59 T k0{}; // 比例因子
60 T phi0{}; // 中央纬线
61 T x0{}; // 虚东偏移
62 T y0{}; // 虚北偏移
63
64 struct tmerc_params {
65 T Qn{}; // 子午线象限,缩放到投影
66 T Zb{}; // 极坐标系中的半径向量
67 T cgb[6]{}; // 高斯 -> 大地纬度的常量
68 T cbg[6]{}; // 大地纬度 -> 高斯的常量
69 T utg[6]{}; // 横轴墨卡托 -> 大地的常量
70 T gtu[6]{}; // 大地 -> 横轴墨卡托的常量
71 };
72
73 tmerc_params tmerc_params_{};
74};
75
79
80} // namespace cuproj
半球
投影的半球标识符。
椭球体参数。
T prime_meridian_offset_
相对于格林威治的偏移量。
ellipsoid< T > ellipsoid_
椭球体参数。