0.0
No commit activity in last 3 years
No release in over 3 years
Geodesic functions based on http://geographiclib.sourceforge.net/
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
>= 10.1
 Project Readme

GeodesicWgs84 -- Distance calculations on the Earth's surface

This an implementation of the geodesic algorithms described in C. F. F. Karney "Algorithms for geodesics" ( https://dx.doi.org/10.1007/s00190-012-0578-z ). It uses the WGS84 standard as a reference ( http://en.wikipedia.org/wiki/World_Geodetic_System ).

From the abstract of this article

Algorithms for the computation of geodesics on an ellipsoid of revolution are given. These provide accurate, robust, and fast solutions to the direct and inverse geodesic problems and they allow differential and integral properties of geodesics to be computed.

Original work

The files geodesic.c and geodesic.h make up for the real work and can be found at ( http://geographiclib.sourceforge.net/html/C/ ).

The version of this gem aims to follow the author's version.

Installation

Add this line to your application's Gemfile:

gem 'geodesic_wgs84'

And then execute:

$ bundle

Or install it yourself as:

$ gem install geodesic_wgs84

Sample Usage

The representation of a DMS (degree minute second) format is 'dd.mm.ss,f' where f means tenth of seconds (fraction).

Also, we are working with 6 decimal places, which will render an accuracy of roughly 10cm. See ( http://en.wikipedia.org/wiki/Decimal_degrees#Accuracy )

require 'geodesic_wgs84'

wgs84 = Wgs84.new

wgs84.lat_lon ...

wgs84.lat_lon_dms ...

wgs84.lat_lon_dms_a (aligned) ...

wgs84.lat_lon_dms_z (zero-filled) ...

wgs84.distance ...

wgs84.average ...

wgs84.center ...

Running tests

Tests are based on minitest.

rake test

Contributing

  1. Fork it ( https://github.com/volkerwiegand/geodesic_wgs84/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request