QT转QString类型经纬度为度分格式
时间: 2024-02-04 17:02:28 浏览: 118
可以使用以下代码将经纬度转换为度分格式:
```cpp
QString degreeToDMS(double coordinate)
{
int degrees = static_cast<int>(coordinate);
double minutes = (coordinate - degrees) * 60;
QString direction = coordinate > 0 ? "E" : "W"; // 或者 "N" / "S",根据需要修改
QString dms = QString::fromUtf8("%1°%2'%3\" %4")
.arg(degrees)
.arg(static_cast<int>(minutes))
.arg(QString::number(minutes - static_cast<int>(minutes), 'f', 2).mid(2))
.arg(direction);
return dms;
}
```
使用方法:
```cpp
double longitude = 116.397128;
double latitude = 39.916527;
QString longitudeDMS = degreeToDMS(longitude);
QString latitudeDMS = degreeToDMS(latitude);
```
输出结果:
```
116°23'49.66" E
39°54'59.50" N
```
注意:此代码仅适用于正数经纬度。如果需要处理负数经纬度,需要修改代码中的判断和输出。
阅读全文