ol-cesium
Version:
OpenLayers Cesium integration library
26 lines • 2.43 kB
JavaScript
export function computeRectangle(canvas, tw, th) {
const maskAspectRatio = tw / th;
let maskSize;
if (maskAspectRatio > 1) {
// landscape
maskSize = [canvas.width, canvas.width / maskAspectRatio];
if (maskSize[1] > canvas.height) {
maskSize = [canvas.height * maskAspectRatio, canvas.height];
}
}
else {
// portrait
maskSize = [canvas.height * maskAspectRatio, canvas.height];
if (maskSize[0] > canvas.width) {
maskSize = [canvas.width, canvas.width / maskAspectRatio];
}
}
return {
scaling: [maskSize[0] / canvas.width, maskSize[1] / canvas.height],
width: maskSize[0],
height: maskSize[1],
offsetX: (canvas.width - maskSize[0]) / 2,
offsetY: (canvas.height - maskSize[1]) / 2,
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZVJlY3RhbmdsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vbGNzL3ByaW50L2NvbXB1dGVSZWN0YW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQXlCLEVBQUUsRUFBVSxFQUFFLEVBQVU7SUFFaEYsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoQyxJQUFJLFFBQVEsQ0FBQztJQUViLElBQUksZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLFlBQVk7UUFDWixRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFDMUQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsZUFBZSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztTQUNJLENBQUM7UUFDSixXQUFXO1FBQ1gsUUFBUSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDbEUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQyJ9