Project

geo_units

0.02
No commit activity in last 3 years
No release in over 3 years
Easily convert between different distance units such as kms, miles etc.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.10.0
>= 2.3.0
>= 2.6.0

Runtime

>= 0.8
~> 0.7.2
~> 0.1.6
 Project Readme

Geo Units

Distance unit functionality (conversions etc.) for Geo libraries. See specs for details.

This gem is used by the geo_point and geo_calc gems and perhaps by others. The aim is that it will contain most of the basic
distance unit functionality required by typical Geo projects.

Usage

in Gemfile:

gem 'geo_units'

Then run the bundler!

$ bundle

Status update (Sept 21, 2011)

GeoUnits is currently undergoing a major refactoring effort in order to group functionality in a more granular fashion, to allow for greater flexibility.
Also, the new GeoUnits will not specifically target use for geo calculations for Earth, but also other globes/worlds, such as in a fantasy setting, planets, suns etc.
Please help in this effort :)

The master branch has now been updated in order to allow specification of the order:
Set the `GeoUnit.default_coords_order` to fit your usage scenario.

`GeoUnit.default_coords_order = :lng_lat`

`GeoUnit.default_coords_order = :lat_lng`

All specs pass again and the dependencies have been updated :)

GeoUnits API

GeoUnits.key(:foot) # will convert any kind of unit into one of (:feet, :meters, :kms, :miles, :radians)
=> :feet
GeoUnits.kms_to :meters, 5 # convert number of one distance unit to another unit
=> 5000  

Core extensions API

2.radians_to(:kms)
=> 222.34  
@2.miles_to(:kms)
=> 3.21

Dms Converter

module GeoUnits::DmsConverter

  • parse_dms(string)
  • to_dms(deg, format = :dms, dp = nil)

Numeric conversions

module GeoUnits::NumericExt

This module is included on the Fixnum and Float classes

  • to_lat
  • to_lng
  • to_dms
  • to_lat_dms
  • to_lon_dms
  • to_rad
  • to_deg
  • normalize_lng
  • normalize_lat
  • normalize_deg(shift)

Using specific GeoUnits modules

The main GeoUnits module consist of various sub-modules that can be used on a case basis.
Including the GeoUnits module will include and extend the base class with all these sub-modules.

class MyGeoThingy
include GeoUnits::Maps # various maps, mapping unit to some distance etc.
extend GeoUnits::Constants # useful geo constants

end

Contributing to geo_units

  • Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet
  • Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright

Copyright © 2011 Kristian Mandrup. See LICENSE.txt for
further details.