求球面两线的交点已知地球球面上两条线,知道每条线上各两点的经纬度,求这两条线在球面的交点的经纬度.

2个回答

  • 如果学过立体解析几何的话这个问题其实很简单.

    如果没有学过也没关系,只要有平面解析几何的基础就不难理解以下解法.

    不妨把地球看为一个球体,地心设为球心O,设半径为R,

    南北极所在线设为Z轴,那么赤道平面就可以看做xy轴平面了,

    且本初子午线所在平面与赤道所在平面的交线设为X轴,

    那么地球上任一点坐标(x,y,z)满足方程:

    x^2+y^2+z^2=R^2

    且任一点A(x,y,z)与经纬度坐标是对应的,

    设某点纬度为θ,经度为ω,

    那么有:

    x=cos(ω)cos(θ)R,

    y=sin(ω)cos(θ)R,

    z=sin(θ)R

    所以当给出两点的经纬度时A1(ω1,θ1),B1(ω2, θ2),

    可以得到两点的立体坐标A1(x1,y1,z1), B1(x2,y2,z2),

    且经过A1,B1的大圆所在平面经过原点,

    所以利用三点坐标可以得到它们所在的平面方程(三点决定一个平面).

    不妨设此平面方程为:

    a1*x+b1*y+c1*z=0,

    同理由另外两点的经纬度确定的平面方程为:

    a2*x+b2*y+c2*z=0,

    加上球面方程共三个方程

    a1*x+b1*y+c1*z=0,

    a2*x+b2*y+c2*z=0,

    x^2+y^2+z^2=R^2

    (a1,a2,b1,b2,c1,c2,R都是已知的参数)

    求出交点坐标:(x0,y0,z0)(一般是关于地心对称的两个交点)

    最后利用: x0=cos(ω)cos(θ)R,y0=sin(ω)cos(θ)R,z0=sin(θ)R

    就可以得到相应的经纬度坐标了.

    另外说明下:

    1)设北极为Z轴正的方向,本初子午线与赤道交点为X轴正方向,

    2)此处计算把常用的经纬度表示转化为了弧度制.

    3)且ω∈[-π,π],当ω∈[-π,0)时为西经,当ω∈[0,π]时为东经,θ∈[-π/2,π/2],当θ∈[-π/2,0)时为南纬,当θ∈[0,π/2]时为北纬,