Di conseguenza, il problema si riduce all'intersezione di una linea con una sfera, il che è semplice.
Ecco i dettagli Gli input sono i punti P1 = (lat1, lon1) e P2 = (lat2, lon2) sulla superficie terrestre, considerati come una sfera, e due raggi corrispondenti r1 e r2.
Converti coordinate geocentriche (lat, lon) in (x, y, z). Come al solito, poiché possiamo scegliere unità di misura in cui la terra ha un raggio unitario,
x = cos(lon) cos(lat)
y = sin(lon) cos(lat)
z = sin(lat).
Nell'esempio, P1 = (-90.234036 gradi, 37.673442 gradi) ha coordinate geocentriche x1 = (-0.00323306, -0.7915, 0.61116) e P2 = (-90.953669 gradi, 36.109997 gradi) ha coordinate geocentriche x2 = (-0.0134464, -0.807775 , 0,589337).
Converti i raggi r1 e r2 (che sono misurati lungo la sfera) in angoli lungo la sfera. Per definizione, un miglio nautico (NM) è 1/60 gradi di arco (che è pi / 180 * 1/60 = 0.0002908888 radianti). Pertanto, come angoli,
r1 = 107.5 / 60 Degree = 0.0312705 radian
r2 = 145 / 60 Degree = 0.0421788 radian
Il cerchio geodetico del raggio r1 attorno a x1 è l'intersezione della superficie terrestre con una sfera euclidea di raggio sin (r1) centrata su cos (r1) * x1.
Il piano determinato dall'intersezione della sfera del raggio sin (r1) attorno a cos (r1) * x1 e la superficie terrestre è perpendicolare a x1 e passa attraverso il punto cos (r1) x1, da cui la sua equazione è x.x1 = cos (r1) (il "." rappresenta il solito prodotto punto ); allo stesso modo per l'altro piano. Ci sarà un unico punto x0 sull'intersezione di quei due piani che è una combinazione lineare di x1 e x2. Scrivendo x0 = a x1 + b * x2 sono le due equazioni planari
cos(r1) = x.x1 = (a*x1 + b*x2).x1 = a + b*(x2.x1)
cos(r2) = x.x2 = (a*x1 + b*x2).x2 = a*(x1.x2) + b
Utilizzando il fatto che x2.x1 = x1.x2, che scriverò come q, la soluzione (se esiste) è data da
a = (cos(r1) - cos(r2)*q) / (1 - q^2),
b = (cos(r2) - cos(r1)*q) / (1 - q^2).
Nell'esempio corrente, computo a = 0.973503 eb = 0.0260194.
Evidentemente abbiamo bisogno di q ^ 2! = 1. Ciò significa che x1 e x2 non possono essere né lo stesso punto né punti antipodali.
Ora tutti gli altri punti sulla linea di intersezione dei due piani differiscono da x0 per alcuni multipli di un vettore n che è reciprocamente perpendicolare a entrambi i piani. Il prodotto incrociato
n = x1~Cross~x2
fa il lavoro fornito n è diverso da zero: ancora una volta, ciò significa che x1 e x2 non sono né coincidenti né diametralmente opposti. (Dobbiamo fare attenzione a calcolare il prodotto incrociato con alta precisione, perché comporta sottrazioni con molta cancellazione quando x1 e x2 sono vicini tra loro.) Nell'esempio, n = (0,0272194, -0,00631254, -0,00803124) .
Pertanto, cerchiamo fino a due punti della forma x0 + t * n che giacciono sulla superficie terrestre: cioè la loro lunghezza è uguale a 1. Equivalentemente, la loro lunghezza al quadrato è 1:
1 = squared length = (x0 + t*n).(x0 + t*n) = x0.x0 + 2t*x0.n + t^2*n.n = x0.x0 + t^2*n.n
Il termine con x0.n scompare perché x0 (essendo una combinazione lineare di x1 e x2) è perpendicolare a n. Le due soluzioni sono facilmente
t = sqrt((1 - x0.x0)/n.n)
e il suo negativo. Ancora una volta è richiesta un'alta precisione, perché quando x1 e x2 sono vicini, x0.x0 è molto vicino a 1, con conseguente perdita di precisione in virgola mobile. Nell'esempio, t = 1.07509 oppure t = -1.07509. I due punti di intersezione sono quindi uguali
x0 + t*n = (0.0257661, -0.798332, 0.601666)
x0 - t*n = (-0.0327606, -0.784759, 0.618935)
Infine, possiamo convertire queste soluzioni in (lat, lon) convertendo geocentrico (x, y, z) in coordinate geografiche:
lon = ArcTan(x,y)
lat = ArcTan(Sqrt[x^2+y^2], z)
Per la longitudine, utilizzare i valori di ritorno arctangent generalizzati nell'intervallo da -180 a 180 gradi (nelle applicazioni di elaborazione, questa funzione accetta sia x che y come argomenti anziché solo il rapporto y / x; a volte viene chiamato "ATan2").
Ottengo le due soluzioni (-88.151426, 36.989311) e (-92.390485, 38.238380), mostrate nella figura come punti gialli.
Gli assi visualizzano le coordinate geocentriche (x, y, z). La macchia grigia è la porzione della superficie terrestre da -95 a -87 gradi di longitudine, da 33 a 40 gradi di latitudine (segnata con un reticolo di un grado). La superficie terrestre è stata resa parzialmente trasparente per mostrare tutte e tre le sfere. La correttezza delle soluzioni calcolate è evidente da come i punti gialli si trovano alle intersezioni delle sfere.