C++ ,经纬度变量的度分秒转经纬度小数点。
时间: 2024-11-23 22:31:27 浏览: 8
在C++中,如果你想要将经纬度的度、分、秒(DMS,Degree-Minute-Second)格式转换为小数点表示的度数(Decimal Degree,DD),可以编写一个函数来进行这种转换。这里是一个简单的示例:
```cpp
#include <iostream>
#include <cmath>
// 将DMS转换为DD
double dmsToDecimal(double degrees, double minutes, double seconds, bool isLatitude) {
const double factor = isLatitude ? -1 : 1; // 因为纬度是反向的(北纬南纬相反)
// 分钟和秒先转换为度
double minutesDegrees = minutes + (seconds / 60);
return degrees + minutesDegrees / 60;
}
int main() {
double degree, minute, second;
std::cout << "请输入经度/纬度的度(整数): ";
std::cin >> degree;
std::cout << "请输入经度/纬度的分钟: ";
std::cin >> minute;
std::cout << "请输入经度/纬度的秒: ";
std::cin >> second;
double decimalDegree = dmsToDecimal(degree, minute, second, /*isLatitude*/ true); // 纬度传true,经度传false
std::cout << "转换后的度数: " << decimalDegree << std::endl;
return 0;
}
```
这个函数假设输入的是正经度和正纬度,对于负值,可以根据实际情况处理。如果要处理南北纬的情况,可以在`factor`中加入相应的判断条件。
阅读全文