Un jour, une gem

03/04/2012

Mardi c'est Geocoder

gem install geocoder

Trouvez vos utilisateurs

Aujourd’hui c’est Geocoder, une solution de géolocalisation utilisant par défaut l’API de Google et de FreeGeoIP pour trouver ce que vous voulez.

Avant de commencer à faire joujou, il faut préparer le terrain pour cette gem et donc ajouter des colonnes longitude et latitude aux models que vous souhaitez géolocaliser :

rails g migration AddCoordinatesToModel latitude:float longitude:float

Ensuite il vous faudra ajouter cette méthode pour préciser comment votre model doit être “géocodé” :

geocoded_by :full_street_address   # ou une adresse IP par exemple
after_validation :geocode          # met les bonnes coordonnées

Il est possible de faire l’inverse en partant des coordonnées pour trouver l’adresse avec cette méthode :

reverse_geocoded_by :latitude, :longitude
after_validation :reverse_geocode  # récupère l'adresse 

Une fois tout cela en place vous aurez accès à tout plein de bonnes choses :

  • Trouver tous les objets dans un périmètre
  • Les objets dans une ville, un pays etc.

Voilà de quoi vous amuser !

Les liens utiles