index.js 982 B

12345678910111213141516171819202122232425262728
  1. // index.ts
  2. import { degreesToRadians, radiansToDegrees } from "@turf/helpers";
  3. import { getCoord } from "@turf/invariant";
  4. function bearing(start, end, options = {}) {
  5. if (options.final === true) {
  6. return calculateFinalBearing(start, end);
  7. }
  8. const coordinates1 = getCoord(start);
  9. const coordinates2 = getCoord(end);
  10. const lon1 = degreesToRadians(coordinates1[0]);
  11. const lon2 = degreesToRadians(coordinates2[0]);
  12. const lat1 = degreesToRadians(coordinates1[1]);
  13. const lat2 = degreesToRadians(coordinates2[1]);
  14. const a = Math.sin(lon2 - lon1) * Math.cos(lat2);
  15. const b = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);
  16. return radiansToDegrees(Math.atan2(a, b));
  17. }
  18. function calculateFinalBearing(start, end) {
  19. let bear = bearing(end, start);
  20. bear = (bear + 180) % 360;
  21. return bear;
  22. }
  23. var turf_bearing_default = bearing;
  24. export {
  25. bearing,
  26. turf_bearing_default as default
  27. };
  28. //# sourceMappingURL=index.js.map