12345678910111213141516171819202122232425262728293031323334 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var meta_1 = require("@turf/meta");
- var helpers_1 = require("@turf/helpers");
- /**
- * Takes one or more features and calculates the centroid using the mean of all vertices.
- * This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons.
- *
- * @name centroid
- * @param {GeoJSON} geojson GeoJSON to be centered
- * @param {Object} [options={}] Optional Parameters
- * @param {Object} [options.properties={}] an Object that is used as the {@link Feature}'s properties
- * @returns {Feature<Point>} the centroid of the input features
- * @example
- * var polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]);
- *
- * var centroid = turf.centroid(polygon);
- *
- * //addToMap
- * var addToMap = [polygon, centroid]
- */
- function centroid(geojson, options) {
- if (options === void 0) { options = {}; }
- var xSum = 0;
- var ySum = 0;
- var len = 0;
- meta_1.coordEach(geojson, function (coord) {
- xSum += coord[0];
- ySum += coord[1];
- len++;
- }, true);
- return helpers_1.point([xSum / len, ySum / len], options.properties);
- }
- exports.default = centroid;
|