- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten - svcTabCommon: Export-Header-Fix via Fallback-Target - TrainingAreaBase: Stub-Header für BUILD_RTI=OFF - ddsfts: Include-Pfad und Dependency-Fixes - BUILD_RTI=OFF Compilation vollständig unterstützt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
// Example of using the GeographicLib::AuxLatitude class. See the paper
|
|
//
|
|
// - C. F. F. Karney,
|
|
// On auxiliary latitudes,
|
|
// Survey Review 56(395), 165--180 (2024).
|
|
// https://doi.org/10.1080/00396265.2023.2217604
|
|
// preprint: https://arxiv.org/abs/2212.05818
|
|
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <exception>
|
|
#include <GeographicLib/Utility.hpp>
|
|
#include <GeographicLib/AuxLatitude.hpp>
|
|
|
|
int main(int argc, const char* const argv[]) {
|
|
try {
|
|
using latitude = GeographicLib::AuxLatitude;
|
|
using angle = GeographicLib::AuxAngle;
|
|
if (argc != 3) {
|
|
std::cerr << "Usage: example-AuxLatitude <n> <base-lat>\n";
|
|
return 1;
|
|
}
|
|
double n = GeographicLib::Utility::fract<double>(std::string(argv[1]));
|
|
int auxin = GeographicLib::Utility::val<int>(std::string(argv[2]));
|
|
double a = 1+n, b = 1-n; // Equatorial radius and polar semiaxis
|
|
latitude aux(latitude::axes(a, b));
|
|
bool exact = true; // Do the exact calculation
|
|
std::cout << std::setprecision(9) << std::fixed;
|
|
int m = 1;
|
|
for (int l = 0; l < 90*m; ++l) {
|
|
angle phi(angle::degrees((l+0.5)/m));
|
|
for (int auxout = 0; auxout < latitude::AUXNUMBER; ++auxout) {
|
|
angle eta = aux.Convert(auxin, auxout, phi, exact);
|
|
std::cout << (auxout ? " " : "") << eta.degrees();
|
|
}
|
|
std::cout << "\n";
|
|
}
|
|
}
|
|
catch (const std::exception& e) {
|
|
std::cerr << "Caught exception: " << e.what() << "\n";
|
|
return 1;
|
|
}
|
|
}
|