What is @turf/transform-scale?
@turf/transform-scale is a module from the Turf.js library that allows you to scale GeoJSON geometries. This can be useful for tasks such as resizing polygons, lines, and points by a given factor, either from their centroid or a specified origin.
Scale a Polygon
This feature allows you to scale a polygon by a factor of 2. The polygon is scaled from its centroid by default.
const turf = require('@turf/turf');
const polygon = turf.polygon([[
[-70.603637, -33.399918],
[-70.614624, -33.395332],
[-70.639343, -33.392466],
[-70.659942, -33.394759],
[-70.683975, -33.404504],
[-70.697021, -33.419406],
[-70.701141, -33.434306],
[-70.700454, -33.446339],
[-70.694274, -33.458369],
[-70.682601, -33.465816],
[-70.668869, -33.472117],
[-70.646209, -33.473835],
[-70.624923, -33.472117],
[-70.609817, -33.468107],
[-70.595397, -33.458369],
[-70.587158, -33.442901],
[-70.587158, -33.426283],
[-70.590591, -33.414248],
[-70.594711, -33.406224],
[-70.603637, -33.399918]
]]);
const scaledPolygon = turf.transformScale(polygon, 2);
console.log(JSON.stringify(scaledPolygon));
Scale a LineString
This feature allows you to scale a LineString by a factor of 1.5. The line is scaled from its centroid by default.
const turf = require('@turf/turf');
const line = turf.lineString([
[-70.603637, -33.399918],
[-70.614624, -33.395332],
[-70.639343, -33.392466],
[-70.659942, -33.394759],
[-70.683975, -33.404504]
]);
const scaledLine = turf.transformScale(line, 1.5);
console.log(JSON.stringify(scaledLine));
Scale a Point
This feature allows you to scale a point by a factor of 3. The point is scaled from its centroid by default, although for points, the scaling operation is trivial.
const turf = require('@turf/turf');
const point = turf.point([-70.603637, -33.399918]);
const scaledPoint = turf.transformScale(point, 3);
console.log(JSON.stringify(scaledPoint));