MEASUREMENT
COORDINATE MUTATION
TRANSFORMATION
FEATURE_CONVERSION
MISC
HELPER
RANDOM
GRIDS
AGGREGATION
META
ASSERTIONS
BOOLEANS
UNIT CONVERSION
DATA
JOINS
CLASSIFICATION

clustersKmeans

在Turf中,clustersKmeans函数用于对点进行K均值聚类分析。

参数

  • points:必选,点集合,用于进行聚类分析。

  • numberOfClusters:必选,分成的簇的数量。

  • options:可选,用于指定其他参数,包括以下属性:

    • iterations: 可选,默认为100,指定聚类算法进行迭代的次数。

返回值

返回值是一个对象,其中包含了每个聚类中心点的特征值。

具体来说,返回值的数据结构如下:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "cluster": 1
      },
      "geometry": {
        "type": "Point",
        "coordinates": [x, y]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "cluster": 2
      },
      "geometry": {
        "type": "Point",
        "coordinates": [x, y]
      }
    }
    ...
  ]
}

其中,每个Feature对象的properties.cluster表示该点所属的簇的编号。

示例

var points = turf.randomPoint(100, {bbox: [0, 30, 10, 40]});
var numberOfClusters = 5;
var clustered = turf.clustersKmeans(points, numberOfClusters);

// 将聚类中心点的颜色值设置为红色
clustered.features.forEach(function(cluster, index){
  cluster.properties["marker-color"] = colors[index % colors.length];
});

L.geoJSON(clustered).addTo(map);

运行上述代码后,效果如下图所示:

image