Skip to content
A simple and flexible tool to format decimal lat/lon coordinates into degrees/minutes/seconds formats (like DMS).
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
test
.gitignore
.travis.yml
LICENSE
README.md
index.js
package.json

README.md

formatcoords Build Status

A simple and flexible tool to format decimal lat/lon coordinates into degrees/minutes/seconds formats (like DMS), using a moment.js-like API.

For geo hipsters that think that 48° 54′ 16.016″ S 71° 0′ 56.250″ W looks way more awesome than -48.9044488,-71.015625.

install: node/browserify

npm install formatcoords

use

var formatcoords = require('formatcoords');
formatcoords(40.76,-73.984).format();
//40° 45′ 36.000″ N 73° 59′ 2.400″ W

parsing

The formatcoords(coord1[, coord2, lonlat]) method accepts decimal lat/lon coordinates in several formats :

  • formatcoords([lat, lon]): an array of floats.
  • formatcoords([lon, lat], true): an array of floats. First longitude, then latitude. Useful for use with GeoJSON, for example.
  • formatcoords(lat, lon) : floats.
  • formatcoords(lon, lat, true) : floats. First longitude, then latitude. Useful for use with GeoJSON, for example.
  • formatcoords('latlon') : latlon is a string in "lat,lon" format.
  • formatcoords({lat: lat, lng: lon} an object with lat and lng properties (Leaflet LatLng object)

formatting

var coords = formatcoords(27.725499,-18.024301);
coords.format(format, {options})

Default output format is DMS (degrees minutes seconds), with a space to separate lat and lon, and 5 decimal places :

coords.format()
//27° 43′ 31.796″ N 18° 1′ 27.484″ W

Available short formats:

Token Output
degrees minutes seconds (DMS) FFf 27° 43′ 31.796″ N 18° 1′ 27.484″ W
degrees decimal minutes Ff 27° 43.529933333333′ N -18° 1.4580666666667′ W
decimal degrees f 27.725499° N 18.024301° W

Custom formats:

The following values are available for both latitudes and longitudes:

Token Output
degrees D 27
degrees with unit DD 27°
decimal degrees d 27.725499
decimal degrees with unit dd 27.725499°
minutes M 7
minutes with unit MM 7′
decimal minutes m 7.63346
decimal minutes with unit mm 7.63346′
decimal seconds s 31.796
decimal seconds with unit ss 31.796″
direction X [N,S], [E,W]
minus sign (west of Greenwich and south of equator) - [-]

Custom format example

coord.format('-D M s');
//-35 16 55.20000 149 7 43.26240
options
Option Name Description Default & type
latLonSeparator The separator to use between the lat and lon values ' ' string
decimalPlaces The number of decimal places to return 5 number

Custom format example with additional options

coord.format('DD MM ss X', {latLonSeparator: ', ',  decimalPlaces: 0);
//35° 43′ 49″ S, 86° 1′ 55″ E

Browser support

IE <= 8 not supported.

DMS to decimal

Use parse-dms.

You can’t perform that action at this time.