qt中,已知一点经纬度,距离,角度,求另一点经纬度,不使用QGeoCoordinate 类,给出Qt编程代码
时间: 2024-01-03 22:04:26 浏览: 105
好的,以下是一个简单的Qt C++代码示例,实现了给定起始点的经纬度、距离和角度,计算出终点的经纬度。
```cpp
#include <cmath>
const double PI = 3.141592653589793238463;
// 计算距离对应的纬度差值
double calcDeltaLat(double distance, double angle)
{
return distance * cos(angle * PI / 180.0) / 111.2;
}
// 计算距离对应的经度差值
double calcDeltaLon(double distance, double angle, double lat)
{
return distance * sin(angle * PI / 180.0) / (111.2 * cos(lat * PI / 180.0));
}
// 计算终点的经纬度
void calcEndpoint(double lat1, double lon1, double distance, double angle, double &lat2, double &lon2)
{
double deltaLat = calcDeltaLat(distance, angle);
double deltaLon = calcDeltaLon(distance, angle, lat1);
lat2 = lat1 + deltaLat;
lon2 = lon1 + deltaLon;
}
int main(int argc, char *argv[])
{
double lat1 = 31.238068; // 起始点纬度
double lon1 = 121.501654; // 起始点经度
double distance = 10.0; // 距离(单位:千米)
double angle = 45.0; // 角度(单位:度)
double lat2, lon2;
calcEndpoint(lat1, lon1, distance, angle, lat2, lon2);
qDebug() << "起始点经纬度:" << lat1 << "," << lon1;
qDebug() << "终点经纬度:" << lat2 << "," << lon2;
return 0;
}
```
上述代码使用了C++标准库中的数学函数,如cos、sin等,以及Qt中的QDebug类输出结果。您可以根据自己的需求进行修改。
阅读全文