UNPKG

samagra-x-enketo-core

Version:

Extensible Enketo form engine

32 lines (27 loc) 954 B
/** * @typedef GeolocationPosition * @property {string} geopoint * @property {number} lat * @property {number} lng * @property {window.GeolocationPosition} position */ /** * @param {window.PositionOptions} [options] - lookup options * @return {Promise<GeolocationPosition>} - coordinates */ export const getCurrentPosition = ( options ) => { return new Promise( ( resolve, reject ) => { navigator.geolocation.getCurrentPosition( ( position ) => { const { latitude, longitude, altitude, accuracy } = position.coords; const lat = Math.round( latitude * 1000000 ) / 1000000; const lng = Math.round( longitude * 1000000 ) / 1000000; const geopoint = `${lat} ${lng} ${altitude || '0.0'} ${accuracy || '0.0'}`; resolve( { geopoint, lat, lng, position, } ); }, reject, options ); } ); };