Planning Your Location Strategy for Rails
-
Upload
thoughtbot -
Category
Technology
-
view
3.023 -
download
1
description
Transcript of Planning Your Location Strategy for Rails
Planning Your Location Strategy for Rails
-- C. Goldoni
“The world is a beautiful book, but it’s not much use if you don’t know how to read.”
https://learn.thoughtbot.com/geocoding-on-rails
I want to see places to stay in an interesting neighborhood.
https://learn.thoughtbot.com/geocoding-on-rails
I want to find hotels near public transportation.
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!
https://learn.thoughtbot.com/geocoding-on-rails
Geolocation
n. The process of identifying the geographical location of a person or device by digital means.
https://learn.thoughtbot.com/geocoding-on-rails
Geocoding
v. The process of obtaining geographic coordinates (latitude and longitude) from full or partial address information.
https://learn.thoughtbot.com/geocoding-on-rails
Reverse-geocoding
v. The process of obtaining address information from geographic coordinates (latitude and longitude).
https://learn.thoughtbot.com/geocoding-on-rails
Geospatial
adj. Of or relating to the relative position of things on the earth’s surface.
https://learn.thoughtbot.com/geocoding-on-rails
https://learn.thoughtbot.com/geocoding-on-rails
https://learn.thoughtbot.com/geocoding-on-rails
Server-side (Ruby)
Interacts with external geocoding services and queries the database.
https://learn.thoughtbot.com/geocoding-on-rails
Database (SQL)
Persists geocoded data, available for geospatial queries.
https://learn.thoughtbot.com/geocoding-on-rails
Client-side (JavaScript)
Interacts with external geocoding services.
https://learn.thoughtbot.com/geocoding-on-rails
External service
Geocodes address, reverse-geocodes coordinates, draws map.
Know our data
• Are the records already geocoded?
• Do our records have address information?
• How accurate do we need the geographic information to be?
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?
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
https://learn.thoughtbot.com/geocoding-on-rails
Whiteboard our design
• Importing data
• Client-side responsibilities
• Server-side responsibilities
https://learn.thoughtbot.com/geocoding-on-rails
Testing
• Stub requests to external services
• Create a fake
https://learn.thoughtbot.com/geocoding-on-rails
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.