| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
- var _clone = require('@turf/clone');
- var _center = require('@turf/center');
- var _centroid = require('@turf/centroid');
- var _bbox = require('@turf/bbox');
- var _rhumbbearing = require('@turf/rhumb-bearing');
- var _rhumbdistance = require('@turf/rhumb-distance');
- var _rhumbdestination = require('@turf/rhumb-destination');
- var _meta = require('@turf/meta');
- var _helpers = require('@turf/helpers');
- var _invariant = require('@turf/invariant');
- function transformScale(geojson, factor, options) {
- options = options || {};
- if (!_helpers.isObject.call(void 0, options)) throw new Error("options is invalid");
- const origin = options.origin || "centroid";
- const mutate = options.mutate || false;
- if (!geojson) throw new Error("geojson required");
- if (typeof factor !== "number" || factor <= 0)
- throw new Error("invalid factor");
- const originIsPoint = Array.isArray(origin) || typeof origin === "object";
- if (mutate !== true) geojson = _clone.clone.call(void 0, geojson);
- if (geojson.type === "FeatureCollection" && !originIsPoint) {
- _meta.featureEach.call(void 0, geojson, function(feature, index) {
- geojson.features[index] = scale(
- feature,
- factor,
- origin
- );
- });
- return geojson;
- }
- return scale(geojson, factor, origin);
- }
- function scale(feature, factor, origin) {
- const isPoint = _invariant.getType.call(void 0, feature) === "Point";
- const originCoord = defineOrigin(feature, origin);
- if (factor === 1 || isPoint) return feature;
- _meta.coordEach.call(void 0, feature, function(coord) {
- const originalDistance = _rhumbdistance.rhumbDistance.call(void 0, originCoord, coord);
- const bearing = _rhumbbearing.rhumbBearing.call(void 0, originCoord, coord);
- const newDistance = originalDistance * factor;
- const newCoord = _invariant.getCoords.call(void 0,
- _rhumbdestination.rhumbDestination.call(void 0, originCoord, newDistance, bearing)
- );
- coord[0] = newCoord[0];
- coord[1] = newCoord[1];
- if (coord.length === 3) coord[2] *= factor;
- });
- delete feature.bbox;
- return feature;
- }
- function defineOrigin(geojson, origin) {
- if (origin === void 0 || origin === null) origin = "centroid";
- if (Array.isArray(origin) || typeof origin === "object")
- return _invariant.getCoord.call(void 0, origin);
- const bbox = geojson.bbox ? geojson.bbox : _bbox.bbox.call(void 0, geojson, { recompute: true });
- const west = bbox[0];
- const south = bbox[1];
- const east = bbox[2];
- const north = bbox[3];
- switch (origin) {
- case "sw":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "southwest":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "westsouth":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "bottomleft":
- return _helpers.point.call(void 0, [west, south]);
- case "se":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "southeast":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "eastsouth":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "bottomright":
- return _helpers.point.call(void 0, [east, south]);
- case "nw":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "northwest":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "westnorth":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "topleft":
- return _helpers.point.call(void 0, [west, north]);
- case "ne":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "northeast":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "eastnorth":
- // @ts-expect-error undocumented, to be removed for v8 #techdebt
- case "topright":
- return _helpers.point.call(void 0, [east, north]);
- case "center":
- return _center.center.call(void 0, geojson);
- case void 0:
- case null:
- case "centroid":
- return _centroid.centroid.call(void 0, geojson);
- default:
- throw new Error("invalid origin");
- }
- }
- var turf_transform_scale_default = transformScale;
- exports.default = turf_transform_scale_default; exports.transformScale = transformScale;
- //# sourceMappingURL=index.cjs.map
|