kwikid-agent-dashboard
Version:
KwikID's EKYC Agent Map View Module.
46 lines • 7.43 kB
JavaScript
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=