function indexPolygon(polygon) {
switch (approach.value) {
case 'fine': {
return h3.polygonToCells(polygon, config.fineRes, true);
}
case 'dual': {
const cells = h3.polygonToCells(polygon, config.fineRes, true);
const compactCells = h3.compactCells(cells);
const coarseCells = h3.uncompactCells(
compactCells.filter(cell => h3.getResolution(cell) <= config.coarseRes),
config.coarseRes
);
const fineCells = h3.uncompactCells(
compactCells.filter(cell => h3.getResolution(cell) > config.coarseRes),
config.fineRes
);
return coarseCells.concat(fineCells);
}
case 'compact': {
const cells = h3.polygonToCells(polygon, config.fineRes, true);
return h3.compactCells(cells);
}
}
}