Wrapper around macOS Core Location services. Can serve as a drop-in replacement for HTML5 Geolocation API in Electron applications.
Note: This module is intended for Electron applications targeted at macOS.
npm install macos-location --save
or
yarn add macos-location
This module exports a single getCurrentPosition
method that has exactly the same signature as navigator.geolocation.getCurrentPosition
.
If you were using HTML5 Geolocation API to retrieve user's location you can simply replace calls to navigator's getCurrentPosition
method with this module.
const { getCurrentPosition } = require('macos-location');
function successCallback(position) {
console.log('Your current position is:');
console.log(`Latitude : ${position.coords.latitude}`);
console.log(`Longitude: ${position.coords.longitude}`);
console.log(`More or less ${position.coords.accuracy} meters.`);
};
function errorCallback(err) {
console.warn(`ERROR(${err.code}): ${err.message}`);
};
// https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions
const options = {
maximumAge: 60000,
};
getCurrentPosition(successCallback, errorCallback, options);
If you don't like callbacks, you can wrap the location request in a Promise.
const { getCurrentPosition } = require('macos-location');
const p = new Promise((resolve, reject) => {
getCurrentPosition(resolve, reject);
});
Released under the the MIT License.