Geo calculations

Hi Robert

does anyone know a gem / plugin / class with methods to do calculations

based on lat/lon coordinates? E.g. calculate the distance of 2 points on
the earth surface. I tried to implement my own stuff, which does not
quite give me exact results.

(quite a repost from a recent railsfrance ML thread, sorry for people subscribing to both lists)

Not specifically a gem for the moment, but you may find the information useful though.

Are you trying to compute bird-flight distances, or driving distances ?

for bird-flight distances:

  • if you have access to the Google API, you can rely on “distanceFrom”

  • if you don’t, you can rely on the Haversine formula (did you use this very one in your own implementation ?)



=> implementation example here :

for driving distances it’s more complicated (and google API doesn’t expose this functionaly AFAIK, although it’s available in

hope this helps


There are various mathematical formulae that do this.
Here' s pretty good (if slightly dense) list of them:

I use the cosine method (via a MySQL query -- MySQL has distance as one
of the spatial functions, but it doesn't come up with the right answers
-- assumes the earth is flat, I think; PotGis might be better) and it
seems to work pretty well.

You should also check out ym4r and georuby (at



Thibaut Barrère wrote: