index.cjs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
  2. var _circle = require('@turf/circle');
  3. var _destination = require('@turf/destination');
  4. var _helpers = require('@turf/helpers');
  5. function lineArc(center, radius, bearing1, bearing2, options = {}) {
  6. const steps = options.steps || 64;
  7. const angle1 = convertAngleTo360(bearing1);
  8. const angle2 = convertAngleTo360(bearing2);
  9. const properties = !Array.isArray(center) && center.type === "Feature" ? center.properties : {};
  10. if (angle1 === angle2) {
  11. return _helpers.lineString.call(void 0,
  12. _circle.circle.call(void 0, center, radius, options).geometry.coordinates[0],
  13. properties
  14. );
  15. }
  16. const arcStartDegree = angle1;
  17. const arcEndDegree = angle1 < angle2 ? angle2 : angle2 + 360;
  18. let alpha = arcStartDegree;
  19. const coordinates = [];
  20. let i = 0;
  21. const arcStep = (arcEndDegree - arcStartDegree) / steps;
  22. while (alpha <= arcEndDegree) {
  23. coordinates.push(
  24. _destination.destination.call(void 0, center, radius, alpha, options).geometry.coordinates
  25. );
  26. i++;
  27. alpha = arcStartDegree + i * arcStep;
  28. }
  29. return _helpers.lineString.call(void 0, coordinates, properties);
  30. }
  31. function convertAngleTo360(alpha) {
  32. let beta = alpha % 360;
  33. if (beta < 0) {
  34. beta += 360;
  35. }
  36. return beta;
  37. }
  38. var turf_line_arc_default = lineArc;
  39. exports.default = turf_line_arc_default; exports.lineArc = lineArc;
  40. //# sourceMappingURL=index.cjs.map