projection = {
const { Projection: code, parallels, origin } = stateplane;
const projection = projections.get(code)();
if (parallels) {
projection.parallels(parallels.map(([p1, p2]) => p1 + p2 / 60));
}
if (origin) {
let rotation;
switch (code) {
case "L":
const [r1, r2] = origin[0];
rotation = [r1 + r2 / 60, 0];
break;
case "TM":
rotation = origin.map(([r1, r2], idx) =>
idx === 0 ? r1 + r2 / 60 : -r1 - r2 / 60
);
break;
default:
throw Error(`"${code}" is not a valid projection identifier.`);
}
projection.rotate(rotation);
}
return projection;
}