

  Le module earthdistance fournit deux approches
  différentes pour calculer de grandes distances circulaires à la surface de la
  Terre. La première dépend du module cube.
  La seconde est basée sur le type de données interne point et
  utilise longitude et latitude pour les coordonnées.
 
Dans ce module, la Terre est supposée parfaitement sphérique (si cette hypothèse n'est pas acceptable, le projet PostGIS doit être considéré.)
  Le module cube doit être installé avant que
  earthdistance ne puisse l'être (bien que vous pouvez
  utiliser la clause CASCADE de CREATE
   EXTENSION pour installer les deux en une seule commande).
 
   Il est fortement recommandé que earthdistance et
   cube soient installés dans le même schéma et que ce
   schéma n'ait pas de droit CREATE donné à un utilisateur auquel on ne ferait
   pas confiance. Sinon, il existe un risque au moment de l'installation pour
   que le schéma de earthdistance contienne des objets
   définis par un utilisateur hostile. De plus, lors de l'utilisation des
   fonctions de earthdistance après l'installation, le
   chemin de recherche entier devrait contenir seulement les schémas de
   confiance.
  
   Les données sont stockées dans des cubes qui sont des points (les coins
   sont identiques), les trois coordonnées représentant la distance
   x, y et z au centre de la Terre. Un domaine earth sur
   cube est fourni. Il inclut des contraintes de vérification pour
   que la valeur respecte ces restrictions et reste raisonnablement proche de la
   surface réelle de la Terre.
  
   Le rayon de la Terre, obtenu à partir de la fonction
   earth(), est donné en mètres. Il est toutefois
   possible de modifier le module pour changer l'unité, ou pour utiliser une
   autre valeur de rayon.
  
   Ce paquet peut être appliqué aux bases de données d'astronomie. Les
   astronomes peuvent modifier earth() pour
   que le rayon renvoyé soit 180/pi(), de sorte que
   les distances soient en degrés.
  
Les fonctions acceptent latitude et longitude en entrée et en sortie (en degrés), calculent la distance circulaire entre deux points et permettent de préciser facilement une boîte utilisable par les recherches par index.
Les fonctions fournies sont montrées dans Tableau F.5.
Tableau F.5. Fonctions earthdistance par cubes
   La seconde partie du module se fonde sur la représentation des emplacements
   sur Terre comme valeurs de type point, pour lesquelles
   le premier composant représente la longitude en degrés, et
   le second la latitude en degrés. Les points ont la forme (longitude,
   latitude) et non l'inverse, car intuitivement, la longitude se compare
   à l'axe X, la latitude à l'axe Y.
  
Un opérateur unique est fourni, il est indiqué dans Tableau F.6.
Tableau F.6. Opérateurs earthdistance par points
| Opérateur Description | 
|---|
| 
         Donne la distance en miles entre deux points à la surface de la Terre. | 
   Contrairement à la partie fondée sur cube, les unités
   ne sont pas modifiables : une modification de la fonction
   earth() n'affecte pas les résultats de l'opérateur.
  
   La représentation longitude/latitude a pour inconvénient d'obliger à tenir
   compte des conditions particulières près des pôles et près des longitudes de
   +/- 180 degrés. La représentation par cube évite ces
   discontinuités.