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
]
}
},
//...
]
}
points
和refPoints
参数必须是一个GeoJSON格式的点要素集合。k
值大于要素集合中要素的数量时,会抛出异常。