За да се съсредоточите върху (a):
В миналото съм изчислил предварително части, съхранявайки lat, long, xaxis, yaxis и zxais, където x, y &z са дефинирани като:
xaxis = cos(radians(Lat)) * cos(radians(Lon))
yaxis = cos(radians(Lat)) * sin(radians(Lon))
zaxis = sin(radians(Lat))
След това разстоянието може да се изчисли с помощта на SQL свободно като (acos( xaxis * $xaxis + yaxis * $yaxis + zaxis * $zaxis ) * 6367.0 / 1.852)
(където тези, започващи с $, са предварително изчислени за въпросната начална точка по същия начин, както по-горе)
Предварителното изчисление по този начин избутва относително скъпия триг към еднократно събитие и опростява заявката.