Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

geo-coordinates-parser

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geo-coordinates-parser

A Javascript function for reading a variety of coordinate formats and converting to decimal numbers. Builds on other efforts by returning the verbatim coordinates and the decimal coordinates all in one object.

  • 1.5.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.1K
decreased by-34.63%
Maintainers
1
Weekly downloads
 
Created
Source

Geo Coordinates Parser

A Javascript function for reading a variety of coordinate formats and converting to decimal latitude and longitude. Builds on previous efforts and returns the verbatim coordinates and the decimal coordinates together in one object for convenience. Can be used to extract coordinates from longer strings. Also includes a function to test existing decimal coordinates against those from the converter.

##If you like this tool please star it on GitHub

Installation

npm install geo-coordinates-parser

Usage

const convert = require('geo-coordinates-parser');

OR

import convert from 'geo-coordinates-parser' //ES6, if you're using a bundler

THEN

let converted;
try {
  converted = convert('40° 26.7717, -79° 56.93172');
}
catch {
  /*we get here if the string is not valid coordinates or format is inconsistent between lat and long*/
}

OR add the number of decimal places you want (but be reasonable, see Coordinate Precision here) -- default is 5

try{
  let converted = convert(coordinatesString, integerDecimalPlaces)
  //do stuff with coordinates...
}
catch{
  //coordinates not valid
}

ALSO

converted.decimalLatitude; // 40.446195 ✓
converted.decimalLongitude; // -79.948862 ✓
converted.verbatimLatitude; // '40° 26.7717' ✓
converted.verbatimLongitude; // '-79° 56.93172' ✓

The returned object includes properties verbatimCoordinates, verbatimLatitude, verbatimLongitude, decimalLatitude, decimalLatitude, and decimalCoordinates.

Validating other conversions

Sometimes we may want to validate existing decimal coordinates against those returned from the converter to find errors. Because we're working with decimal numbers we must settle for values that are close enough (in this case equal up to six decimal places).

converted.closeEnough(yourDecimalCoordinatesToValidate) //must be a numbers separated by ,

Supported formats

All formats (except the 'exotic formats') covered by npm coordinate-parser and the coordinate regex in this GitHub Gist, including the following:

  • -23.3245° S / 28.2344° E
  • 27deg 15min 45.2sec S 18deg 32min 53.7sec E
  • 40° 26.7717 -79° 56.93172
  • 18.24S 22.45E // read as degrees and minutes
  • 27.15.45S 18.32.53E

...and others.

Formats used for testing can be be accessed with:

convert.formats

Please add coordinate formats that throw an error in the Github Issues.

Note that formats like 24.56S 26.48E are treated as degrees and minutes! And 24.0, 26.0 is treated as an error. If you don't want this behaviour you need to catch these cases with your own code before you use convert.

Want to use it in the browser?

Add <script src="https://cdn.jsdelivr.net/npm/geo-coordinates-parser/bundle/geocoordsparser.js"></script> to your html head and you'll have the convert function available globally. You won't have .formats, .closeEnough or .toCoordinateFormat though, only the coordinates conversion function.

Convert back to standard formats

Sometimes we might want to convert back to more traditional formats for representing coordinates, such as DMS or DM. This can be useful for standardizing coordinates. The convert function has an enum to help.

converted.toCoordinateFormat(convert.to.DMS) /// '40° 26.771" N, 79° 56.932" W' ✓

License

MIT Licence

Acknowledgements

Support for development was provided by the Animal Demography Unit of the University of Cape Town, and the Natural Science Collections Facility.

Keywords

FAQs

Package last updated on 14 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc