@mapbox/sexagesimal

1.2.0 • Public • Published

npm version Build Status

sexagesimal

Convert between sexagesimal coordinates and decimal coordinates.

Usage

with npm (and/or) browserify

npm install @mapbox/sexagesimal

otherwise

curl https://raw.github.com/mapbox/sexagesimal/master/sexagesimal.js

Examples

var sexagesimal = require('sexagesimal');

// Converting a single DMS coordinate:

sexagesimal('40° 42′ 45.72″ N');  // direction after
// 40.712700000000005
sexagesimal('N40° 42′ 45.72″');   // direction before
// 40.712700000000005
sexagesimal('N40°42′45.72″');     // flexible whitespace
// 40.712700000000005

// Converting a coordinate pair from DMS to lat/lng:

sexagesimal.pair('40° 42′ 45.72″ N, 74° 0′ 21.24″ W');   // direction after
// [ 40.712700000000005, -74.0059 ]
sexagesimal.pair('N 40° 42′ 45.72″, W 74° 0′ 21.24″');   // direction before
// [ 40.712700000000005, -74.0059 ]

// Converting a lat/lon coordinate to DMS:

sexagesimal.coordToDMS(40.71270000000000, 'lat');
// { whole: 40, minutes: 42, seconds: 45, dir: 'N' }
sexagesimal.coordToDMS(-74.0059, 'lon');
// { whole: 74, minutes: 0, seconds: 21, dir: 'W' }

API

sexagesimal(str, dims) // returns a number or null

dims is by default NSEW but can be other ordinal directions expressed as a string of characters.

sexagesimal.pair(str, dims) // returns [lat, lon] or null

dims is by default NSEW but can be other ordinal directions expressed as a string of characters.

sexagesimal.format(float, dimension) // returns a formatted string

Format a single sexagesimal number. dimension must be a string, either "lat" or "lon".

sexagesimal.formatPair({ lat: float, lon: float }) // returns a formatted string

Format a sexagesimal coordinate.

Package Sidebar

Install

npm i @mapbox/sexagesimal

Weekly Downloads

3,002

Version

1.2.0

License

BSD-2-Clause

Unpacked Size

14.1 kB

Total Files

8

Last publish

Collaborators

  • mbx-npm-ci-production
  • mbx-npm-ci-staging
  • mbx-npm-advanced-actions-production
  • mbx-npm-advanced-actions-staging
  • mbx-npm-09-production
  • mbx-npm-08-production
  • mbx-npm-07-production
  • mbx-npm-06-production
  • mbx-npm-05-production
  • mbx-npm-04-production
  • mbx-npm-03-production
  • mbx-npm-02-production
  • mbx-npm-01-production
  • mbx-npm-02-staging
  • mapbox-npm-01
  • mapbox-npm-02
  • mapbox-npm-07
  • mapbox-npm-03
  • mapbox-npm-04
  • mapbox-npm-09
  • mapbox-npm-05
  • mapbox-npm-06
  • mapbox-npm-08
  • mapbox-npm-advanced-actions
  • mapbox-npm-ci
  • mapbox-npm
  • mapbox-admin
  • mapbox-machine-user