Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
geo-coordinates-parser
Advanced tools
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.
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
npm install geo-coordinates-parser
const { convert } = require('geo-coordinates-parser'); //CommonJS
OR
import { convert } from 'geo-coordinates-parser' //ES6
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' ✓
converted.decimalCoordinates; // for convenience
convert.originalFormat; // 'DM' to indicate degrees and minutes
The returned object includes properties verbatimCoordinates, verbatimLatitude, verbatimLongitude, decimalLatitude, decimalLatitude, and decimalCoordinates.
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 ,
All formats (except the 'exotic formats') covered by npm coordinate-parser and the coordinate regex in this GitHub Gist, including the following:
...and others.
Formats used for testing can be be accessed with:
convert.formats
Please note that decimal precision needs to be reasonable. The maximum decimal places allowed in DMS, for example, is three (3). DMS coordinates with four decimal places in seconds are measuring position at a precision of less than 10mm, which is way beyond what even the best professional GPS devices can provide.
Please add coordinate formats that throw an error in the Github Issues.
CAUTION!!! *Coordinates like '24.56S 26.48E' are treated as degrees and minutes and '24, 26' or '24.0, 26.0' will throw an error. If you don't want this behaviour you need to catch these cases with your own code before you use convert. *
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.
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' ✓
MIT Licence
Support for development was provided by the Animal Demography Unit of the University of Cape Town, and the Natural Science Collections Facility. CommonJS and ESM support was added following https://www.sensedeep.com/blog/posts/2021/how-to-create-single-source-npm-module.html.
FAQs
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.
The npm package geo-coordinates-parser receives a total of 4,524 weekly downloads. As such, geo-coordinates-parser popularity was classified as popular.
We found that geo-coordinates-parser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.