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

nearestPoint

Turf的CLASSIFICATION模块中,nearestPoint方法将每个输入要素(feature)与最近邻要素(nearest feature)进行匹配,输出每个要素与其最近邻要素之间的距离和最近邻要素的属性。此方法使用的是k-nearest-neighbors(kNN)算法。

参数

  • points:输入点要素集合,GeoJSON格式,必须包含geometry属性
  • refPoints:参考点要素集合,GeoJSON格式,必须包含geometry属性
  • k:表示要匹配的最近邻数(k值)。默认值为1,当k值大于1时,将返回k个最近邻要素,以及它们与输入要素之间的距离和各自的属性。
  • closest:布尔值,表示是否仅返回最近邻要素而不返回距离和属性。默认值为false。

返回值

返回一个包含每个输入点与其最近邻点之间的距离和参考要素的属性的GeoJSON格式要素集。

示例

var points = turf.randomPoint(5, {bbox: [0, 0, 10, 10]});
var refPoints = turf.randomPoint(5, {bbox: [0, 0, 10, 10]});

var nearest = turf.nearestPoint(points, refPoints);
// nearest的结果示例
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "id": 0,
        "nearest_id": 3,
        "distance": 0.769438296
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          9.963479332391924,
          2.7263854222831772
        ]
      }
    },
    //...
  ]
}

异常

  • pointsrefPoints参数必须是一个GeoJSON格式的点要素集合。
  • 如果输入点和参考点都为空时,会抛出异常。
  • k值大于要素集合中要素的数量时,会抛出异常。