grid = {
const [minX, minY, maxX, maxY] = bbox.map(i => Math.round(i * 1000));
const squareSize = 0.0005;
const results = {};
for(let latInt = minY; latInt <= maxY; latInt++) {
for(let lngInt = minX; lngInt <= maxX; lngInt++) {
const lat = latInt / 1000;
const lng = lngInt / 1000;
const queryBBox = {
minX: lng - squareSize,
minY: lat - squareSize,
maxX: lng + squareSize,
maxY: lat + squareSize
};
const candidates = rtree.search(queryBBox);
if (candidates.length > 0) {
const queryPoly = turf.bboxPolygon([queryBBox.minX, queryBBox.minY, queryBBox.maxX, queryBBox.maxY]);
if (candidates.some(cand => !turf.booleanDisjoint(queryPoly, cand))) {
if (!results[latInt]) {
results[latInt] = [];
}
results[latInt].push(lngInt)
}
}
}
}
return results;
}