| 123456789101112131415161718192021222324252627282930313233 |
- import { GeoJsonProperties, FeatureCollection, Point } from 'geojson';
- type KmeansProps = GeoJsonProperties & {
- cluster?: number;
- centroid?: [number, number];
- };
- /**
- * Takes a set of {@link Point|points} and partition them into clusters using the k-mean .
- * It uses the [k-means algorithm](https://en.wikipedia.org/wiki/K-means_clustering)
- *
- * @function
- * @param {FeatureCollection<Point>} points to be clustered
- * @param {Object} [options={}] Optional parameters
- * @param {number} [options.numberOfClusters=Math.sqrt(numberOfPoints/2)] numberOfClusters that will be generated
- * @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)
- * @returns {FeatureCollection<Point>} Clustered Points with an additional two properties associated to each Feature:
- * - {number} cluster - the associated clusterId
- * - {[number, number]} centroid - Centroid of the cluster [Longitude, Latitude]
- * @example
- * // create random points with random z-values in their properties
- * var points = turf.randomPoint(100, {bbox: [0, 30, 20, 50]});
- * var options = {numberOfClusters: 7};
- * var clustered = turf.clustersKmeans(points, options);
- *
- * //addToMap
- * var addToMap = [clustered];
- */
- declare function clustersKmeans(points: FeatureCollection<Point>, options?: {
- numberOfClusters?: number;
- mutate?: boolean;
- }): FeatureCollection<Point, KmeansProps>;
- export { type KmeansProps, clustersKmeans, clustersKmeans as default };
|