Necesito almacenar las coordenadas GPS en una base de datos. Escuché que las carrozas son menos precisas que los decimales. ¿Es eso cierto? Si es así, ¿qué motivo hay para usar flotadores?Rieles 3 Flotante o decimal para coordenadas GPS
Respuesta
Si quieres coordenadas GPS más precisos, entonces sí decimales son el camino a seguir. Se pueden crear con una migración como:
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
La razón la gente utiliza flotadores es que por lo general son lo suficientemente precisos para la mayoría de los casos de uso y utiliza menos espacio para almacenar.
Si quiere 100% de precisión con sus decimales, multiplique por 10 ** n (donde n es la precisión deseada) y guárdelo como número entero.
Los objetos flotantes representan números reales inexactos utilizando la representación de punto flotante de precisión doble de la arquitectura nativa.
Ver:
http://www.ruby-doc.org/core-1.9.3/Float.html
Desde Tierra circunferencia ecuatorial es de alrededor de 40.000 kilometros y la longitud se extiende 360 grados, se deduce que cerca del ecuador 1 grados es equivalente a a unos 110 km.
Así:
- 0 precisión dígitos: ± 110 kilometros
- precisión 1 dígitos: ± 11 kilometros
- 2 precisión dígitos: ± 1,1 kilometros
- precisión 3 dígitos: ± 110 m
- 4 dígitos de precisión: ± 11 m
- 5 dígitos de precisión: ± 1,1 m
- 6 dígitos de precisión: ± 11 cm
- 7 dígitos de precisión: ± 1,1 cm
Sin embargo, mientras más cerca se muda a los polacos, menores serán las longitudes de los paralelos se convierte. Por ejemplo, cerca de Paris, que tiene una latitud de 48 grados, 1 grado es equivalente a cos(48) * 110 = 74 km
.
Así:
- 0 precisión dígitos: ± 74 kilometros
- precisión 1 dígitos: ± 7,4 kilometros
- 2 precisión dígitos: ± 0,74 kilometros precisión
- 3 dígitos: ± 74 m
- 4 dígitos de precisión: ± 7,4 m
- 5 dígitos de precisión: ± 0.74 m
- 6 digit precisio n: ± 7,4 cm
- Precisión de 7 dígitos: ± 0.74 cm
Por lo tanto, el campo del tipo DECIMAL(10,7)
sería suficiente para satisfacerte con bastante precisión.
https://en.wikipedia.org/wiki/Decimal_degrees –
Como puede ver en la respuesta de Paul, depende de su caso de uso.
Un flotador proporciona una precisión de aproximadamente 6 dígitos decimales.
± 11 cm es bastante aceptable para, por ejemplo, una dirección. y si está mostrando direcciones, es poco probable que vaya a realizar operaciones aritméticas que compilarán errores de redondeo.
- 1. ¿Flotante o decimal para los precios?
- 2. Números de versión flotante, decimal o doble
- 3. servicio Web para obtener las coordenadas GPS
- 4. Obtener coordenadas de GPS: Android
- 5. Decimal/Flotante en mangosta para node.js
- 6. Calcular coordenadas GPS para formar un radio de tamaño dado
- 7. Nombre de país para las coordenadas de GPS
- 8. Coordenadas de GPS en grados para calcular distancias
- 9. Convertir coordenadas de GPS para coordinar el plano
- 10. Mal en el decimal/flotante python
- 11. Convertir Flotante en Decimal (SQL Server)
- 12. coordenadas en 3 Subespacios Para resolver unboundedness
- 13. grados convertir/minutos/segundos a decimal Coordenadas
- 14. Cómo convertir las coordenadas de GPS a la localidad
- 15. Buscando una biblioteca flotante medio o flotante
- 16. Geocodificación: ¿se requiere precisión en las coordenadas de GPS?
- 17. Coordenadas GPS: 1km cuadrados alrededor de un punto
- 18. Dadas las coordenadas GPS, ¿cómo encuentro lugares de interés cercanos o puntos de interés?
- 19. Obtención de coordenadas GPS en el teléfono Windows 7
- 20. ¿Cómo se calcula el ángulo entre dos coordenadas geográficas/GPS?
- 21. Almacenar y consultar coordenadas de GPS con eficacia
- 22. Cómo convertir una dirección (como texto) en coordenadas gps?
- 23. Rieles 3: diferentes vistas para cada modelo
- 24. Punto decimal o coma decimal en Android
- 25. ActionMailer 3 sin rieles
- 26. Imprimir float PHP con 3 dígitos después del punto decimal?
- 27. ¿El tipo de datos "MONEY" de SQL Server es un punto flotante decimal o un punto flotante binario?
- 28. Observe_field en rieles 3
- 29. Display valor flotante w/o notación científica
- 30. .NET MVC 3 Custom Decimal? Carpeta modelo
@jac Consulte: 'http: // www.ruby-forum.com/topic/208222' y por qué el decimal no resuelve su problema. – Anil
@Anil no estoy seguro de seguir. Utilizo esto en mi aplicación en lugar de flotadores para obtener coordenadas de GPS de mayor precisión y funciona exactamente como esperaba. –