Skip to content
Snippets Groups Projects
README.rdoc 1.5 KiB
Newer Older
Geocoder is a simple plugin for Rails that provides object geocoding (via Google Maps) and some utilities for working with geocoded objects. The code can be used as a standalone method provider or included in a class to give objects geographic awareness.

== Setup

Use the Rails plugin install script:

  script/plugin install git://github.com/alexreisner/geocoder.git

To add geocoding features to a class:

Be sure your class defines read/write attributes +latitude+ and +longitude+ as well as a method called +location+ (or whatever name you pass to +geocoded_by+) that returns a string suitable for passing to a Google Maps search, for example:

  714 Green St, Big Town, MO

If your model has +address+, +city+, +state+, and +country+ attributes your +location+ method might look something like this:

  def location
    [address, city, state, country].compact.join(', ')
  end


== Examples

Look up coordinates of an object:

  obj.fetch_coordinates            # returns an array [lat, lon]
  obj.fetch_and_assign_coordinates # writes values to +latitude+ and +longitude+

Find distance between object and a point:

  obj.distance_to(40.71432, -100.23487)      # in miles
  obj.distance_to(40.71432, -100.23487, :km) # in kilometers

Find objects within 20 miles of a point:
  Venue.find_near('Omaha, NE, US', 20)  # Venue is a geocoded model

Please see the code for more methods and detailed information about arguments.
Alex Reisner's avatar
Alex Reisner committed

Alex Reisner's avatar
Alex Reisner committed
Copyright (c) 2009 Alex Reisner, released under the MIT license