72 votos

¿Tipo de datos correcto para latitud y longitud? (en activerecord)

¿Debo guardar latitud y longitud como cuerdas o flotadores (o cosa)?

(Estoy usando activerecord / rubí en los carriles, si eso importa).

140voto

Gokul Puntos 854

Esto es lo que uso:

add_column :table_name, :lat, :decimal, {:precision=>10, :scale=>6}
add_column :table_name, :lng, :decimal, {:precision=>10, :scale=>6}

21voto

Greg Campbell Puntos 10321

Si usted necesita para hacer más complejo geográfica de los cálculos, se puede investigar PostGIS para Postgresql o MySQL Extensiones Espaciales de MySQL. De lo contrario, un flotador (doble precisión podría ser una buena idea) debería funcionar.

Edit: parece Que el GeoRuby biblioteca incluye un Rieles de extensión para trabajar con el espacio/SIG extensiones tanto de las citadas bases de datos.

20voto

Chris B Puntos 7476

Si usted no está usando una base de datos habilitada espacialmente, mapas de Google recomienda usar flotadores de tamaño (10,6). Que le da 6 dígitos después del decimal - si quieres más precisión, se puede ajustar por consiguiente.

3voto

Mike Trpcic Puntos 12741

Te sugiero usar flotadores, aunque realmente no hace mucho de una diferencia. Los flotadores son más fáciles de hacer cálculos sobre si alguna vez desea en el futuro.

2voto

T.E.D. Puntos 26829

Generalmente desea Lat/Long en el tipo de flotador más grande que tienes. En algunas latitudes (por ejemplo: cerca del Ecuador) cambios muy pequeños en longitud puede compararse a grandes diferencias en términos de distancia de la superficie.

Supongo que si es un campo que no siempre desea hacer cualquier matemática, puede utilizar una cadena. Evitar aunque.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X