Planning Your Location Strategy for Rails

  • 2,464 views
Uploaded 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 …

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:

https://learn.thoughtbot.com/geocoding-on-rails

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,464
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Planning Your Location Strategy for Rails
  • 2. https://learn.thoughtbot.com/geocoding-on-rails “The world is a beautiful book, but it’s not much use if you don’t know how to read.” -- C. Goldoni
  • 3. https://learn.thoughtbot.com/geocoding-on-rails I want to see places to stay in an interesting neighborhood.
  • 4. https://learn.thoughtbot.com/geocoding-on-rails I want to find hotels near public transportation.
  • 5. https://learn.thoughtbot.com/geocoding-on-rails 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. https://learn.thoughtbot.com/geocoding-on-rails Geolocation n. The process of identifying the geographical location of a person or device by digital means.
  • 7. https://learn.thoughtbot.com/geocoding-on-rails Geocoding v. The process of obtaining geographic coordinates (latitude and longitude) from full or partial address information.
  • 8. https://learn.thoughtbot.com/geocoding-on-rails Reverse-geocoding v. The process of obtaining address information from geographic coordinates (latitude and longitude).
  • 9. https://learn.thoughtbot.com/geocoding-on-rails Geospatial adj. Of or relating to the relative position of things on the earth’s surface.
  • 10. https://learn.thoughtbot.com/geocoding-on-rails
  • 11. https://learn.thoughtbot.com/geocoding-on-rails Server-side (Ruby) Interacts with external geocoding services and queries the database.
  • 12. https://learn.thoughtbot.com/geocoding-on-rails Database (SQL) Persists geocoded data, available for geospatial queries.
  • 13. https://learn.thoughtbot.com/geocoding-on-rails Client-side (JavaScript) Interacts with external geocoding services.
  • 14. https://learn.thoughtbot.com/geocoding-on-rails External service Geocodes address, reverse-geocodes coordinates, draws map.
  • 15. https://learn.thoughtbot.com/geocoding-on-rails 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. https://learn.thoughtbot.com/geocoding-on-rails 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. https://learn.thoughtbot.com/geocoding-on-rails Start with free libraries and datasets • Google Maps JavaScript API • Geocoder Ruby gem • Area Ruby gem • GeoNames downloadable geographical database • PostGIS
  • 18. https://learn.thoughtbot.com/geocoding-on-rails Whiteboard our design • Importing data • Client-side responsibilities • Server-side responsibilities
  • 19. https://learn.thoughtbot.com/geocoding-on-rails Testing • Stub requests to external services • Create a fake
  • 20. https://learn.thoughtbot.com/geocoding-on-rails 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. https://learn.thoughtbot.com/geocoding-on-rails Questions? Laila Winner @malandr1na laila@thoughtbot.com