UNPKG

kwikid-agent-dashboard

Version:

KwikID's EKYC Agent Map View Module.

46 lines 7.43 kB
import { getObjectValueFromPath } from "kwikid-toolkit"; // To Calculate Distance between two markers export const calculateDistance = (point1, point2) => { const lat1 = point1.lat; const lng1 = point1.lng; const lat2 = point2.lat; const lng2 = point2.lng; const R = 6371; // Earth radius in kilometers const dLat = (lat2 - lat1) * (Math.PI / 180); const dLng = (lng2 - lng1) * (Math.PI / 180); const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos((lat1 * Math.PI) / 180) * Math.cos((lat2 * Math.PI) / 180) * Math.sin(dLng / 2) * Math.sin(dLng / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); const distance = R * c; return distance; }; // To calculate nearest distance from marker export const nearestNeighborAlgorithm = (startingPoint, unvisitedPoints) => { let currentPoint = startingPoint; const path = [currentPoint]; const visitedPoints = new Set([currentPoint]); while (unvisitedPoints.length > 0) { let nearestPoint = null; let minDistance = Number.POSITIVE_INFINITY; for (const point of unvisitedPoints) { const distance = calculateDistance(currentPoint, point); if (distance < minDistance) { minDistance = distance; nearestPoint = point; } } path.push(nearestPoint); visitedPoints.add(nearestPoint); currentPoint = nearestPoint; unvisitedPoints = unvisitedPoints.filter((point) => !visitedPoints.has(point)); } return path; }; export const addressConcator = (data, config) => { const address = config.reduce((accumulator, currentValue) => `${accumulator} ${getObjectValueFromPath(data, currentValue)}`, ""); return address; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2hlbHBlcnMvbWFwcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQVUsRUFBRTtJQUNwRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLDZCQUE2QjtJQUM3QyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxHQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRiw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsYUFBa0IsRUFDbEIsZUFBc0IsRUFDZixFQUFFO0lBQ1QsSUFBSSxZQUFZLEdBQUcsYUFBYSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMsTUFBTSxhQUFhLEdBQWEsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRXhELE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDakMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUUzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLGVBQWUsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEQsSUFBSSxRQUFRLEdBQUcsV0FBVyxFQUFFO2dCQUMxQixXQUFXLEdBQUcsUUFBUSxDQUFDO2dCQUN2QixZQUFZLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hCLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUU1QixlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFTLEVBQUUsTUFBVyxFQUFVLEVBQUU7SUFDaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FDNUIsR0FBRyxXQUFXLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQ2hFLEVBQUUsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVGcm9tUGF0aCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG4vLyBUbyBDYWxjdWxhdGUgRGlzdGFuY2UgYmV0d2VlbiB0d28gbWFya2Vyc1xuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZURpc3RhbmNlID0gKHBvaW50MTogYW55LCBwb2ludDI6IGFueSk6IG51bWJlciA9PiB7XG4gIGNvbnN0IGxhdDEgPSBwb2ludDEubGF0O1xuICBjb25zdCBsbmcxID0gcG9pbnQxLmxuZztcbiAgY29uc3QgbGF0MiA9IHBvaW50Mi5sYXQ7XG4gIGNvbnN0IGxuZzIgPSBwb2ludDIubG5nO1xuXG4gIGNvbnN0IFIgPSA2MzcxOyAvLyBFYXJ0aCByYWRpdXMgaW4ga2lsb21ldGVyc1xuICBjb25zdCBkTGF0ID0gKGxhdDIgLSBsYXQxKSAqIChNYXRoLlBJIC8gMTgwKTtcbiAgY29uc3QgZExuZyA9IChsbmcyIC0gbG5nMSkgKiAoTWF0aC5QSSAvIDE4MCk7XG4gIGNvbnN0IGEgPVxuICAgIE1hdGguc2luKGRMYXQgLyAyKSAqIE1hdGguc2luKGRMYXQgLyAyKSArXG4gICAgTWF0aC5jb3MoKGxhdDEgKiBNYXRoLlBJKSAvIDE4MCkgKlxuICAgICAgTWF0aC5jb3MoKGxhdDIgKiBNYXRoLlBJKSAvIDE4MCkgKlxuICAgICAgTWF0aC5zaW4oZExuZyAvIDIpICpcbiAgICAgIE1hdGguc2luKGRMbmcgLyAyKTtcbiAgY29uc3QgYyA9IDIgKiBNYXRoLmF0YW4yKE1hdGguc3FydChhKSwgTWF0aC5zcXJ0KDEgLSBhKSk7XG4gIGNvbnN0IGRpc3RhbmNlID0gUiAqIGM7XG5cbiAgcmV0dXJuIGRpc3RhbmNlO1xufTtcblxuLy8gVG8gY2FsY3VsYXRlIG5lYXJlc3QgZGlzdGFuY2UgZnJvbSBtYXJrZXJcbmV4cG9ydCBjb25zdCBuZWFyZXN0TmVpZ2hib3JBbGdvcml0aG0gPSAoXG4gIHN0YXJ0aW5nUG9pbnQ6IGFueSxcbiAgdW52aXNpdGVkUG9pbnRzOiBhbnlbXVxuKTogYW55W10gPT4ge1xuICBsZXQgY3VycmVudFBvaW50ID0gc3RhcnRpbmdQb2ludDtcbiAgY29uc3QgcGF0aDogYW55W10gPSBbY3VycmVudFBvaW50XTtcbiAgY29uc3QgdmlzaXRlZFBvaW50czogU2V0PGFueT4gPSBuZXcgU2V0KFtjdXJyZW50UG9pbnRdKTtcblxuICB3aGlsZSAodW52aXNpdGVkUG9pbnRzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgbmVhcmVzdFBvaW50ID0gbnVsbDtcbiAgICBsZXQgbWluRGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cbiAgICBmb3IgKGNvbnN0IHBvaW50IG9mIHVudmlzaXRlZFBvaW50cykge1xuICAgICAgY29uc3QgZGlzdGFuY2UgPSBjYWxjdWxhdGVEaXN0YW5jZShjdXJyZW50UG9pbnQsIHBvaW50KTtcbiAgICAgIGlmIChkaXN0YW5jZSA8IG1pbkRpc3RhbmNlKSB7XG4gICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgIG5lYXJlc3RQb2ludCA9IHBvaW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhdGgucHVzaChuZWFyZXN0UG9pbnQpO1xuICAgIHZpc2l0ZWRQb2ludHMuYWRkKG5lYXJlc3RQb2ludCk7XG4gICAgY3VycmVudFBvaW50ID0gbmVhcmVzdFBvaW50O1xuXG4gICAgdW52aXNpdGVkUG9pbnRzID0gdW52aXNpdGVkUG9pbnRzLmZpbHRlcihcbiAgICAgIChwb2ludCkgPT4gIXZpc2l0ZWRQb2ludHMuaGFzKHBvaW50KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcGF0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzQ29uY2F0b3IgPSAoZGF0YTogYW55LCBjb25maWc6IGFueSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBjb25maWcucmVkdWNlKFxuICAgIChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PlxuICAgICAgYCR7YWNjdW11bGF0b3J9ICR7Z2V0T2JqZWN0VmFsdWVGcm9tUGF0aChkYXRhLCBjdXJyZW50VmFsdWUpfWAsXG4gICAgXCJcIlxuICApO1xuICByZXR1cm4gYWRkcmVzcztcbn07XG4iXX0=