Quali unità fa PostgreSQL & # 8220; earthdistance & # 8221; uso del modulo?
-
06-07-2019 - |
Domanda
Suppongo che le unità che utilizza siano metri (m), ma non sembra chiaro dalla documentazione ho trovato. È corretto?
In tal caso, solo per verificare, al fine di convertire tra miglia / metri, presumo che queste funzioni dovrebbero fare il trucco:
public static function mi2m($mi) { // miles to meters
return $mi * 1609.344;
}
public static function m2mi($m) { // meters to miles
return $m * 0.000621371192;
}
Soluzione
La documentazione sembra inequivocabile. La maggior parte del modulo utilizza i contatori per impostazione predefinita. Ma puoi cambiarlo in qualsiasi unità ti piace modificando una singola funzione, earth
. Presumibilmente tutte le altre funzioni usano questa funzione in modo che le tue unità possano essere arbitrarie se questa è sostituita.
Nota che il punto < @ > point
funziona sempre in miglia e non può essere regolato .
Le tue funzioni di conversione sono corrette, ma è anche facile da controllare:
Altri suggerimenti
Il raggio della Terra è ottenuto dalla funzione terra (). Viene espresso in metri
Se il raggio della Terra è in metri, immagino che la tua matematica sarà sbagliata a meno che tu non usi anche i metri.
La documentazione è chiara: il paragrafo 2 della sezione F.8.1 dice: & # 8220; Il raggio della Terra è ottenuto dalla funzione terra (). Viene espresso in metri. & # 8221;
Se hai input in metri, quindi usalo in questo modo:
radius_in_metres/1.609