Skip to content
Snippets Groups Projects
Commit 2d0058e2 authored by Taha Cherfia's avatar Taha Cherfia
Browse files

HOLI-5486: add util function to calculate radius

parent 79c70820
No related branches found
No related tags found
No related merge requests found
import { GeolocationGeometry } from "./types.ts";
import { turf } from "./deps.ts";
import { ApiDefaults } from "./api_types.ts";
/**
* Calculates the radius of a given polygon or multi-polygon geometry.
*
* @param {GeolocationGeometry} geometry - The input geometry to calculate the radius for.
* @returns {number} The calculated radius in kilometers.
*/
export function calculateRadius(geometry: GeolocationGeometry) {
if (geometry.type !== "Polygon" && geometry.type !== "MultiPolygon") {
return ApiDefaults.MIN_RADIUS;
}
const center = turf.center(geometry);
const vertices = turf.explode(geometry);
let maxDistance: number = ApiDefaults.MIN_RADIUS;
turf.coordEach(vertices, (vertice) => {
const distance = turf.distance(center, turf.point(vertice), {
units: "kilometers",
});
if (distance > maxDistance) {
maxDistance = distance;
}
});
const radius = Math.ceil(maxDistance);
if (radius >= ApiDefaults.MAX_RADIUS) {
return ApiDefaults.MAX_RADIUS;
}
return radius;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment