Rails in a week - day 2Programming rails · railsinaweek
TL;DR: I have a terribly ugly first draft of the application working!
Afternoon: so, let's get down to maps… What's cool in Rails is that there are plenty of gems, and you just have to plug them in, right?
GoogleMapsForRails seems like the right tool for the job.
After trying to get my posts to be geolocalized… Success! It took some time to get a marker on the maps, because I thought the locations were created on-the-fly by a geocoding of the address returned by the model, when it actually just fishes the database for the lat/lng data. I had to display the json sent by the controller in rails to confirm that nothing was sent, then add a dummy post in the db with some lat/lng data.
So it seems that geocoding (the process of finding lat/lng coordinates from a string, e.g. “main street, san francisco” => [37.790621,-122.393355]) isn't done by GoogleMapsForRails. What shall I use? Googling suggests Geokit, but separating the gem from its Rails counterpart sounds strange to me. And apparently it doesn't work for Rails 3. Some more research, and the Geocoder gem turns up: looks good!
Some more time working with the bolts and nuts… And ta-dah! A first version is working.
The code is up on Github. To get the desired results:
http://localhost:3000/a/washington gives a straightforward geocoding for “washington” and displays it on a map.
http://localhost:3000/b/washington finds the opposite coordinates (i.e. the antipodes) and displays it on a map.
Coming up tomorrow: making things pretty, testing, then deploying.