For at fokusere på (a):
Tidligere har jeg forudberegnet dele, lagret lat, long, xaxis, yaxis og zxais, hvor x, y og z er defineret som:
xaxis =cos(radianer(Lat)) * cos(radianer(Lon))yaxis =cos(radianer(Lat)) * sin(radianer(Lon))zaxis =sin(radianer(Lat))
Afstanden kan derefter beregnes ved hjælp af SQL løst som (acos( xaxis * $xaxis + yaxis * $yaxis + zaxis * $zaxis ) * 6367.0 / 1.852)
(hvor dem, der starter med en $, er forudberegnet for det pågældende startpunkt på samme måde som ovenfor)
Forudregning på denne måde skubber den relativt dyre trig til en engangsbegivenhed og forenkler forespørgslen.