index.cjs 1.4 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// index.ts
  2. var _clone = require('@turf/clone');
  3. var _meta = require('@turf/meta');
  4. var _skmeans = require('skmeans'); var _skmeans2 = _interopRequireDefault(_skmeans);
  5. function clustersKmeans(points, options = {}) {
  6. var count = points.features.length;
  7. options.numberOfClusters = options.numberOfClusters || Math.round(Math.sqrt(count / 2));
  8. if (options.numberOfClusters > count) options.numberOfClusters = count;
  9. if (options.mutate !== true) points = _clone.clone.call(void 0, points);
  10. var data = _meta.coordAll.call(void 0, points);
  11. var initialCentroids = data.slice(0, options.numberOfClusters);
  12. var skmeansResult = _skmeans2.default.call(void 0, data, options.numberOfClusters, initialCentroids);
  13. var centroids = {};
  14. skmeansResult.centroids.forEach(function(coord, idx) {
  15. centroids[idx] = coord;
  16. });
  17. _meta.featureEach.call(void 0, points, function(point, index) {
  18. var clusterId = skmeansResult.idxs[index];
  19. point.properties.cluster = clusterId;
  20. point.properties.centroid = centroids[clusterId];
  21. });
  22. return points;
  23. }
  24. var turf_clusters_kmeans_default = clustersKmeans;
  25. exports.clustersKmeans = clustersKmeans; exports.default = turf_clusters_kmeans_default;
  26. //# sourceMappingURL=index.cjs.map