isoxml
Version:
JavaScript library to parse and generate ISOXML (ISO11783-10) files
20 lines (19 loc) • 797 B
JavaScript
import { bbox as turfBbox, degreesToRadians, lengthToDegrees } from '@turf/turf';
export function createGridParamsGenerator(targetCellWidth, targetCellHeight) {
return (geometry) => {
const [minX, minY, maxX, maxY] = turfBbox(geometry);
const sizeY = lengthToDegrees(targetCellHeight, 'meters');
// works fine for small areas
const sizeX = lengthToDegrees(targetCellWidth, 'meters') / Math.cos(degreesToRadians((minY + maxY) / 2));
const numCols = Math.floor((maxX - minX) / sizeX);
const numRows = Math.floor((maxY - minY) / sizeY);
return {
minX,
minY,
numCols,
numRows,
cellWidth: (maxX - minX) / numCols,
cellHeight: (maxY - minY) / numRows
};
};
}