Project

os_map_ref

0.01
No release in over 3 years
Low commit activity in last 3 years
This gem allows you to gather U.K. Ordnance Survey Eastings, North, and Map References from a range of text inputs; and output them in a consistent manner
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

OsMapRef

Build Status Maintainability Rating Coverage Gem Version Licence

This gem allows you to gather U.K. Ordnance Survey Eastings, North, and Map References from a range of text inputs.

Installation

Add this line to your application's Gemfile

gem 'os_map_ref'

And then update your dependencies by calling

$ bundle install

Or install it yourself as

$ gem install os_map_ref

Usage

To convert a map reference to eastings and northings

location = OsMapRef::Location.for 'ST5880171043'

location.easting       == 358801
location.northing      == 171043
location.map_reference == 'ST 58801 71043'

To convert eastings and northings to a map reference

location = OsMapRef::Location.for '358801, 171043'

location.easting       == 358801
location.northing      == 171043
location.map_reference == 'ST 58801 71043'

Handling short easting/northing input values

If the full input easting or northing value has fewer than six digits, for example a northing value for a location in the south of England, the input value should be left-zero-padded within the input string. For example:

Without a leading zero on the northing input value, the map reference is for a location in Fife, Scotland:

location = OsMapRef::Location.for '358801, 71043'

location.easting       == 358801
location.northing      == 710430
location.map_reference == 'NO 58801 10430'

Whereas with a leading zero on the northing input value, the map reference is for a location in Dorset, England.

location = OsMapRef::Location.for '358801, 071043'

location.easting       == 358801
location.northing      == 071043
location.map_reference == 'SY 58801 71043'

From OS Map Reference to Longitude and Latitude

If your end result needs to be longitude and latitude, you can combine the OsMapRef output with that of another gem called global_convert

For example

require 'global_convert'
require 'os_map_ref'

os_location = OsMapRef::Location.for 'ST 58801 71043'

location = GlobalConvert::Location.new(
  input: {
    projection: :osgb36,
    lon: os_location.easting,
    lat: os_location.northing
  },
  output: {
    projection: :wgs84
  }
)

puts "Latitude = #{location.lat} in radians."
puts "Longitude = #{location.lon} in radians."

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bundle exec rake to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install.

Contributing to this project

If you have an idea you'd like to contribute please log an issue.

All contributions should be submitted via a pull request.

License

THIS INFORMATION IS LICENSED UNDER THE CONDITIONS OF THE OPEN GOVERNMENT LICENCE found at:

http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3

The following attribution statement MUST be cited in your products and applications when using this information.

Contains public sector information licensed under the Open Government license v3

About the license

The Open Government Licence (OGL) was developed by the Controller of Her Majesty's Stationery Office (HMSO) to enable information providers in the public sector to license the use and re-use of their information under a common open licence.

It is designed to encourage use and re-use of information freely and flexibly, with only a few conditions.