两个GPS点之间的碰撞

时间:2016-12-23 10:30:10

标签: c++ math vector 3d gps

如果我有两个GPS坐标点,我想做球形到球形交叉或椭圆体到椭圆体。那个公式是什么?

假设我有两个不同的lon,lat,alt两个GPS点。我想做球体到球体交叉或椭圆体到椭圆体。那有一个公式吗?

    WGS84toXYZ(xAv, yAv, zAv, (m_sPosAV.GetLongitude()*math::pi) / 180, (m_sPosAV.GetLatitude()*math::pi) / 180, (m_sPosAV.GetAltitude()*math::pi) / 180); // lon direction Nort
    WGS84toXYZ(xPoi, yPoi, zPoi, (poi.Position().GetLongitude()*math::pi) / 180, (poi.Position().GetLatitude()*math::pi) / 180, (poi.Position().GetAltitude()*math::pi) / 180); // lon direction Nort

    Sphere avSphere;
    Sphere poiSphere;

    avSphere.position.x = xAv;
    avSphere.position.y = yAv;
    avSphere.position.z = 0;
    avSphere.radius = 1550000;
    poiSphere.position.x = xPoi;
    poiSphere.position.y = yPoi;
    poiSphere.position.z = 0;
    poiSphere.radius = 100000;

    if (doesItCollide(avSphere, poiSphere))
    {
        qDebug() << "collision sphere";
    }

1 个答案:

答案 0 :(得分:0)

球体很容易: 如果你的2点之间的距离小于球体的半径之和,你就会得到一个交叉点。