Dois-je stocker la latitude et la longitude sous forme de chaînes ou de flotteurs (ou autre chose)?
(J'utilise activerecord/Ruby on Rails, si cela importe).
Si vous devez effectuer des calculs géographiques plus complexes, vous pouvez rechercher PostGIS pour Postgresql ou MySQL Spatial Extensions pour MySQL. Sinon, un flotteur (la double précision peut être une bonne idée) devrait fonctionner.
Edit: Il semble que la bibliothèque GeoRuby inclut une extension Rails pour travailler avec le extensions spatiales/SIG pour les deux bases de données susmentionnées.
Voici ce que j'utilise:
add_column :table_name, :lat, :decimal, {:precision=>10, :scale=>6}
add_column :table_name, :lng, :decimal, {:precision=>10, :scale=>6}
Si vous n'utilisez pas une base de données spatialisée, Google Maps recommande en utilisant des flotteurs de taille (10,6). Cela vous donne 6 chiffres après la décimale - si vous voulez plus de précision, vous pouvez ajuster en conséquence.
Je suggère d'utiliser des flotteurs, même si cela ne fait pas vraiment une grande différence. Les flotteurs sont plus faciles à faire si vous le souhaitez à l'avenir.
En général, vous voulez que Lat/Long soit stocké dans le plus grand type de flotteur que vous ayez. À certaines latitudes (par exemple: près de l'équateur), de très petits changements de longitude peuvent équivaloir à de grandes différences en termes de distance de surface.
Je suppose que si c'est un champ sur lequel vous ne voudrez jamais faire de calcul, vous pouvez utiliser une chaîne. J'éviterais ça cependant.