centroid2 = {
console.time("Calculating centroid, 2");
const cellsWithIJ = cells.map(cell => {
const {i, j} = h3.cellToLocalIj(cells[0], cell);
return {cell, i, j};
});
let avgI = 0;
let avgJ = 0;
for (const {i, j} of cellsWithIJ) {
avgI += i;
avgJ += j;
}
avgI /= cells.length;
avgJ /= cells.length;
let nearest = cells[0];
let nearestDist = Infinity;
for (const {cell, i, j} of cellsWithIJ) {
const dist = (i - avgI) ** 2 + (j - avgJ) ** 2;
if (dist < nearestDist) {
nearestDist = dist;
nearest = cell;
}
}
console.timeEnd("Calculating centroid, 2");
return nearest;
}