position method

({double lat, double lon, double range}) position(
  1. double jde
)

Heliocentric position at equinox and ecliptic of date.

Implementation

({double lon, double lat, double range}) position(double jde) {
  final tau = j2000Century(jde) * 0.1;
  final lon = pMod(_sum(tau, _l), 2 * math.pi);
  final lat = _sum(tau, _b);
  final range = _sum(tau, _r);
  // VSOP87B is J2000 reference frame — precess to date.
  final precessor = EclipticPrecessor(2000.0, jdeToJulianYear(jde));
  final precessed = precessor.precess(lon, lat);
  return (lon: precessed.lon, lat: precessed.lat, range: range);
}