location-utilities
Coordinate formatting, location calculation utilities, and NMEA sentence parser.
This module provides many useful functions:
- Formats ddmm.mmmmm or degrees minutes as DD or decimal degrees.
- Formats decimal degrees or DD as degrees minutes seconds or DMS.
- Formats DMS or degrees minutes seconds as DD or decimal degrees.
- Calculates horizontal accuracy which is the accuracy output on most GPS devices.
- Calculates the distance between two points.
- Parses all standard sentences of the NMEA protocol which includes $GPDTM, $GPGBS, $GPGGA, $GPGLL, $GPGLQ, $GPGNQ, $GPGNS, $GPGPQ, $GPGRS, $GPGSA, $GPGST, $GPGSV, $GPRMC, $GPVTG, and $GPZDA.
- Supports metric and imperial units.
Love my modules?
- Support my continued creation of important modules. Buy me a glass of bourbon! https://www.paypal.me/buymebourbon
Installation
npm install location-utilities --save
Node usage
var LocationUtility = ;
Angular usage
;
Current module functions
Returned Unit of Measure
// Pass 'imp' for imperial and 'm' for metric
Parse NMEA sentence
// Returns an object with the parsed data// Unit is either m for metric or imp for imperial// Measurements are returned in meters or feet// Longitude and latitude are returned in decimal degreesLocationUtility.parseNMEANMEASentence, unit;
Parse NMEA sentence with an interface
// Returns an object with the parsed data and casts it to a NMEA sentence interfaceLocationUtility.parseNMEANMEASentence, 'imp' as LocationUtility.GGA;
Parse specific NMEA sentence
// Supports all standard NMEA sentences as parse functions// Replace GGA with the name of the sentence you are trying to parse// Measurements are returned in meters or feet// Longitude and latitude are returned in decimal degreesLocationUtility.parseGGANMEASentence, 'imp';
Calculate horizontal accuracy
// Returns horizontal accuracy as a number// Unit is either m for metric or imp for imperial// Measurements are returned in meters or feet ; LocationUtility.horizontalAccuracyparsedGST.stdLatitudeError, parsedGST.stdLongitudeError, 'imp';
Format degrees minutes as decimal degrees
// Returns an object containing decimal degrees for both latitude and longitude// Latitude direction is either N for North or S for South// Longitude direction is either E for East or W for west LocationUtility.DMToDDlatitudeDirection, latitude, longitudeDirection, longitude;
Format latitude degrees minutes as decimal degrees
// Returns decimal degrees for latitude as a number// Latitude direction is either N for North or S for South LocationUtility.DMLatToDDlatitudeDirection, latitude;
Format longitude degrees minutes as decimal degrees
// Returns decimal degrees for longitude as a number// Longitude direction is either E for East or W for west LocationUtility.DMLongToDDlongitudeDirection, longitude;
Format latitude decimal degrees as degrees minutes seconds
// Returns degrees minutes seconds for latitude as a string LocationUtility.DDLatToDMSlatitude;
Format longitude decimal degrees as degrees minutes seconds
// Returns degrees minutes seconds for longitude as a string LocationUtility.DDLongToDMSlongitude;
Format degrees minutes seconds as decimal degrees
// Returns decimal degrees as a number// Looks for strings in this format: 138° 31' 50" E LocationUtility.DMSToDDlongitude;
Calculate distance between two points
// Returns the distance in the desired unit// Unit is either m for metric or imp for imperial// Longitude points and latitude points must be in decimal degrees// Measurements are returned in kilometers or miles LocationUtility.calculateDistancepoint1Latitude, point1Longitude, point2Latitude, point2Longitude, unit;