求球面两线的交点已知地球球面上两条线,知道每条线上各两点的经纬度,求这两条线在球面的交点的经纬度.
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]时为北纬,