Planning Your Location Strategy for Rails


Published on

What does geolocation mean? How about geocoding? Reverse-coding? Geospatial? Is Google Maps' JavaScript API the best service to use? How do we avoid being rate limited? Should we import a free geographical dataset to make local SQL queries upon it? When do we move from Postgres and the Geocoder gem in Rails to PostGIS?

Integrating location into your Rails app brings up a number of questions. This slide deck is intended to answer some of the basic ones and help you plan your location strategy. To go deeper, we have a full codebase (with tests) available at:

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Planning Your Location Strategy for Rails

  1. 1. Planning Your Location Strategy for Rails
  2. 2. “The world is a beautiful book, but it’s not much use if you don’t know how to read.” -- C. Goldoni
  3. 3. I want to see places to stay in an interesting neighborhood.
  4. 4. I want to find hotels near public transportation.
  5. 5. How do we go from desired user outcomes to working software? • Learn the vocabulary • Know the responsibilities of each part of the tech stack • Form a strategy • Code!
  6. 6. Geolocation n. The process of identifying the geographical location of a person or device by digital means.
  7. 7. Geocoding v. The process of obtaining geographic coordinates (latitude and longitude) from full or partial address information.
  8. 8. Reverse-geocoding v. The process of obtaining address information from geographic coordinates (latitude and longitude).
  9. 9. Geospatial adj. Of or relating to the relative position of things on the earth’s surface.
  10. 10.
  11. 11. Server-side (Ruby) Interacts with external geocoding services and queries the database.
  12. 12. Database (SQL) Persists geocoded data, available for geospatial queries.
  13. 13. Client-side (JavaScript) Interacts with external geocoding services.
  14. 14. External service Geocodes address, reverse-geocodes coordinates, draws map.
  15. 15. Know our data • Are the records already geocoded? • Do our records have address information? • How accurate do we need the geographic information to be?
  16. 16. Choose an external geocoding service • How many requests per day will we be making? Will we get rate limited? • What are the comparable benefits of free, paid, and open source services? • What is our budget?
  17. 17. Start with free libraries and datasets • Google Maps JavaScript API • Geocoder Ruby gem • Area Ruby gem • GeoNames downloadable geographical database • PostGIS
  18. 18. Whiteboard our design • Importing data • Client-side responsibilities • Server-side responsibilities
  19. 19. Testing • Stub requests to external services • Create a fake
  20. 20. Details in the book Includes a complete codebase (with tests). Plot points on a map, use HTML5 to get coordinates in the browser, cache external services, index geospatial queries, and more.
  21. 21. Questions? Laila Winner @malandr1na