You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt C++中QGeoCoordinate使用指南:azimuthTo()与distanceTo()方法详解

Qt C++中QGeoCoordinate的azimuthTo()与distanceTo()方法使用

1. distanceTo()方法获取两点距离

distanceTo()方法用于计算两个地理坐标之间的球面距离,返回值单位为米。直接调用已初始化的QGeoCoordinate对象的该方法,传入目标坐标即可。

结合你的代码,修改后示例:

#include <QGeoCoordinate>
#include <QDebug>

int main() {
    QGeoCoordinate geo;
    geo.setLatitude(90);
    geo.setLongitude(90);
    QGeoCoordinate geo2;
    geo2.setLatitude(53.213456);
    geo2.setLongitude(-9.182547);

    // 计算两点距离
    qreal distance = geo.distanceTo(geo2);
    qDebug() << "两点距离:" << distance << "米";
    // 如需转换为公里,可除以1000
    qDebug() << "两点距离:" << distance / 1000 << "公里";
    return 0;
}

说明:该方法基于WGS84坐标系计算球面最短距离(大圆距离),无需额外参数,直接调用即可得到结果。

2. azimuthTo()方法获取方位角

azimuthTo()方法返回从当前坐标指向目标坐标的方位角,范围为0°到360°:

  • 0°代表正北方向
  • 90°代表正东方向
  • 180°代表正南方向
  • 270°代表正西方向

使用示例(基于你的坐标):

// 计算方位角
qreal azimuth = geo.azimuthTo(geo2);
qDebug() << "从geo到geo2的方位角:" << azimuth << "°";

如果目标坐标与当前坐标重合,该方法会返回NaN。

注意事项

  • 使用前确保QGeoCoordinate对象已正确初始化(纬度范围-90°到90°,经度范围-180°到180°),否则方法可能返回无效值。
  • 两个方法的返回值均为qreal类型,可根据需求进行单位转换或精度处理。

内容的提问来源于stack exchange,提问作者Nabil Haidar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:06:26