From: Mathew Cucuzella Date: 2009-08-13T17:34:29+09:00 Subject: [ANN] geodesic 1.0.0 released geodesic version 1.0.0 has been released! * Geodesic is a Ruby library for calculating distance and bearing on the Earth's surface using longitude and latitude. I found it helpful in some basic position management applications. See README at above site for install instructions. Geodesic contains the following features: * A Position class to encapsulate an Earth position (latitude and longitude) * A method to calculate the distance between two positions using Haversine formula * A method to calculate the distance between two positions using the Law of Cosines * A method to calculate the initial bearing between two positions * A method to calculate a position a given distance from another position along a bearing Sample Usage require 'rubygems' require 'geodesic' fremont = Geodesic::Position.new(37.549531, -121.998711) farmington = Geodesic::Position.new(37.923482, -121.015263) d = Geodesic::dist_haversine(fremont.lat, fremont.lon, farmington.lat, farmington.lon) print "distance from Fremont to Farmington is ", d, " kilometers\n" b = Geodesic::bearing(fremont.lat, fremont.lon, farmington.lat, farmington.lon) print "bearing is ", b, " degrees\n" p = Geodesic::dest_position(fremont.lat, fremont.lon, b, d + 10) print "10 kilometers beyond farmington is ", p.lat, ", ", p.lon, "\n" The output is: distance from Fremont to Farmington is 95.957632116596 kilometers bearing is 64.0206814526114 degrees 10 kilometers beyond farmington is 37.9619800970259, -120.912203460738 Credits The original author of the JavaScript implementation, Chris Veness, can be found at: http://www.movable-type.co.uk/scripts/latlong.html License GNU LGPL, Lesser General Public License version 2.1. For details, see file "COPYING.LESSER". -- Posted via http://www.ruby-forum.com/.