| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // index.ts
- import { circle } from "@turf/circle";
- import { destination } from "@turf/destination";
- import { lineString } from "@turf/helpers";
- function lineArc(center, radius, bearing1, bearing2, options = {}) {
- const steps = options.steps || 64;
- const angle1 = convertAngleTo360(bearing1);
- const angle2 = convertAngleTo360(bearing2);
- const properties = !Array.isArray(center) && center.type === "Feature" ? center.properties : {};
- if (angle1 === angle2) {
- return lineString(
- circle(center, radius, options).geometry.coordinates[0],
- properties
- );
- }
- const arcStartDegree = angle1;
- const arcEndDegree = angle1 < angle2 ? angle2 : angle2 + 360;
- let alpha = arcStartDegree;
- const coordinates = [];
- let i = 0;
- const arcStep = (arcEndDegree - arcStartDegree) / steps;
- while (alpha <= arcEndDegree) {
- coordinates.push(
- destination(center, radius, alpha, options).geometry.coordinates
- );
- i++;
- alpha = arcStartDegree + i * arcStep;
- }
- return lineString(coordinates, properties);
- }
- function convertAngleTo360(alpha) {
- let beta = alpha % 360;
- if (beta < 0) {
- beta += 360;
- }
- return beta;
- }
- var turf_line_arc_default = lineArc;
- export {
- turf_line_arc_default as default,
- lineArc
- };
- //# sourceMappingURL=index.js.map
|