pray-calc
Version:
Accurate prayer times using custom algorithm for dynamic angles and nrel-spa for extreme precision
27 lines (22 loc) • 1.01 kB
JavaScript
// Import the SunCalc library
const suncalc = require('suncalc');
/**
* Calculates detailed moon position information.
* @param {Date} date - The date and time for which to calculate the position.
* @param {number} latitude - Observer's latitude in decimal degrees.
* @param {number} longitude - Observer's longitude in decimal degrees.
* @returns {Object} The moon's position (azimuth, altitude), distance, and parallactic angle.
*/
function getMoonPosition(date, latitude, longitude) {
const moonPosition = suncalc.getMoonPosition(date, latitude, longitude);
// Convert azimuth and altitude from radians to degrees
const azimuth = moonPosition.azimuth * 180 / Math.PI;
const altitude = moonPosition.altitude * 180 / Math.PI;
return {
azimuth,
altitude,
distance: moonPosition.distance, // distance to moon in kilometers
parallacticAngle: moonPosition.parallacticAngle // parallactic angle in radians
};
}
module.exports = { getMoonPosition };