function kRingIndexes(searchLocation, pad = 0) {
const searchRadiusKm = searchRadiusMiles*1.60934;
const origin = h3.geoToH3(searchLocation.lat, searchLocation.lng, res);
const searchingFor = h3.geoToH3(24.940714411344228,25.954223817201044, res)
console.log(searchingFor);
const a = Math.max(...h3.kRingDistances(origin, 1)[1].map(
oneAwayH3 => h3.pointDist(h3.h3ToGeo(oneAwayH3), h3.h3ToGeo(origin), h3.UNITS.km) / 2))
const e = Math.min(...h3.kRingDistances(origin, 2)[2].map(
twoAwayH3 => h3.pointDist(h3.h3ToGeo(twoAwayH3), h3.h3ToGeo(origin), h3.UNITS.km) / 3))
const radiusIfEven = Math.ceil(((searchRadiusKm - e) / e) / (3.0/2.0));
const radiusIfOdd = Math.ceil(((((searchRadiusKm - e) / e) * 2.0) + 1.0)/3.0);
const inscriptionRadius = Math.ceil((searchRadiusKm - a)/(2.0*a));
const circumscriptionRadius = (radiusIfEven % 2 === 0 ? radiusIfEven : radiusIfOdd) + 1;
const kRingDistances = h3.kRingDistances(origin, circumscriptionRadius);
const h3sFromInscription = kRingDistances.slice(0, inscriptionRadius + 1).flat();
const h3s = h3sFromInscription.concat(kRingDistances.slice(inscriptionRadius + 1).map(hexRing =>
hexRing.filter(newH3 => {
const h3Center = h3.h3ToGeo(newH3);
return h3.pointDist([searchLocation.lat, searchLocation.lng], h3Center, h3.UNITS.km) < (searchRadiusKm + e);
})).flat());
return h3s;
}