Ho bisogno di memorizzare le coordinate GPS in un database. Ho sentito dire che i float sono meno precisi dei decimali. È vero? In tal caso, quale motivo ci sarà per utilizzare i galleggianti?Rails 3 Float o decimal per le coordinate GPS
risposta
Se vuoi le coordinate GPS più accurati, allora sì decimali sono la strada da percorrere. È possibile creare loro con una migrazione simile:
create_table "models" do |t|
t.decimal "latitude", :precision => 15, :scale => 10, :default => 0.0
t.decimal "longitude", :precision => 15, :scale => 10, :default => 0.0
end
Il motivo la gente usa carri è che di solito sono abbastanza precisi per la maggior parte dei casi d'uso e di utilizzare meno spazio per memorizzare.
Se si desidera una precisione del 100% con i decimali, moltiplicare per 10 ** n (dove n è la precisione desiderata) e memorizzare come numero intero.
Gli oggetti mobili rappresentano numeri reali inesatti utilizzando la rappresentazione in virgola mobile a precisione doppia dell'architettura nativa.
See:
http://www.ruby-doc.org/core-1.9.3/Float.html
Da Terra circonferenza equatoriale è circa 40000 km e longitudine estende 360 gradi, ne consegue che in prossimità dell'equatore 1 gradi equivale a 110 chilometri.
Così:
- 0 precisione cifre: ± 110 km
- precisione 1 cifra: ± 11 km
- 2 precisione cifre: ± 1,1 km
- 3 precisione cifre: ± 110 m
- Precisione a 4 digit: ± 11 m
- Precisione a 5 digit: ± 1,1 m
- Precisione a 6 cifre: ± 11 centimetri
- 7 precisione cifre: ± 1,1 centimetri
Tuttavia, più ci si sposta ai polacchi, più piccole sono le lunghezze dei parallelismi diventa. Ad esempio vicino a Parigi, che ha una latitudine di 48 gradi, 1 grado equivale a cos(48) * 110 = 74 km
.
Così:
- 0 precisione cifre: ± 74 km
- precisione 1 cifra: ± 7,4 km
- 2 precisione cifre: ± 0,74 km precisione
- 3 cifre: ± 74 m
- Precisione a 4 digit: ± 7.4 m
- Precisione a 5 digit: ± 0.74 m
- 6 cifre precisio n: ± 7,4 cm
- Precisione a 7 cifre: ± 0.74 cm
Quindi, il campo di tipo DECIMAL(10,7)
sarebbe sufficiente per soddisfare l'utente piuttosto preciso.
https://en.wikipedia.org/wiki/Decimal_degrees –
Come puoi vedere nella risposta di Paolo, dipende dal tuo caso d'uso.
Un valore float fornisce una precisione di circa 6 cifre decimali.
± 11 cm è abbastanza accettabile per, ad esempio, un indirizzo. e se stai visualizzando gli indirizzi è improbabile che tu faccia qualche operazione aritmetica che comporti errori di arrotondamento.
- 1. Servizio Web per ottenere le coordinate GPS
- 2. Nome del paese per le coordinate GPS
- 3. Numeri di versione float, decimal o double
- 4. Converti coordinate GPS in coordinate coordinate
- 5. Ottieni coordinate GPS: Android
- 6. Come convertire le coordinate GPS in località
- 7. Precisione coordinate GPS
- 8. Memorizzando dati statistici, ho bisogno di DECIMAL, FLOAT o DOUBLE?
- 9. Google Maps (javascript API): ottieni le coordinate GPS dall'indirizzo
- 10. tipo/i di operando non supportato per *: 'float' e 'Decimal'
- 11. Geocoding: precisione richiesta nelle coordinate GPS?
- 12. Come si converte Int/Decimal in float in C#?
- 13. Calcola le coordinate GPS per formare un raggio di una data dimensione
- 14. Paese di ricerca per le coordinate GPS senza accesso a Internet
- 15. Ottenere le coordinate in coordinate
- 16. Rilasciato per Rails 3
- 17. CSS - Posizionamento assoluto o float?
- 18. Memorizzazione e interrogazione delle coordinate GPS in modo efficace
- 19. Dato coordinate GPS, come posso trovare punti di riferimento o punti di interesse vicini?
- 20. più convalide Rails 3 (Rails per Zombies; 2: 3)
- 21. Come calcolare la distanza tra due coordinate GPS senza utilizzare l'API di Google Maps?
- 22. Rails 3: rollback per after_create
- 23. Rails 3: Strategia per le notifiche di sistema
- 24. Java: dovrei usare float o float?
- 25. Rails 3 available_locales escluse le traduzioni gemma
- 26. Impossibile ottenere le coordinate GPS utilizzando Javascript sul browser in Android
- 27. Come calcolare l'angolo tra due coordinate geografiche/GPS?
- 28. Conversione UIKeyboardFrameEndUserInfoKey per visualizzare o Finestra Coordinate
- 29. Dove sono le rails 3 di asset_host?
- 30. Query attraverso le associazioni - Rails 3
@jac Vedere: 'http: // www.ruby-forum.com/topic/208222' e perché il decimale non risolve il problema. – Anil
@Anil non sono sicuro che io segua. Lo uso nella mia applicazione invece di float per coordinate GPS di precisione più elevata e funziona esattamente come mi aspetto. –