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

interpolate

Turf的INTERPOLATION模块中的interpolate函数,用于在给定的一组点和一组值的情况下,对于任意给定的点,依据其距离前后最近的已知点,计算出该点对应的值。

参数

  • point:任意点的GeoJSON格式(Point)
  • points:GeoJSON格式的点(FeatureCollection<Point>);这些点需要按照地理距离的顺序排列
  • values:值(Array);长度必须与points中的元素数量相等。没有数据的点可以用null补位。

示例

var point = turf.point([-75.596, 40.038]);
var points = turf.featureCollection([
  turf.point([-75.587, 40.031]),
  turf.point([-75.600, 40.027]),
  turf.point([-75.605, 40.032]),
  turf.point([-75.597, 40.042])
]);
var values = [0, 10, null, 15];

var result = turf.interpolate(point, points, values);
// result = 8.93003715543488

返回值

  • Number:计算出的插值结果

异常

  • 如果points参数传入的FeatureCollection中的元素数量为0,函数将抛出异常。
  • 如果values参数传入的数组长度与points参数传入的FeatureCollection中的点的数量不相等,函数将抛出异常。

注意事项

距离计算默认使用Haversine公式。如果需要使用其他距离公式,请在调用本函数前设置Turf的距离计算方法。如果没有设置,将使用默认的Haversine公式进行距离计算。

在实际场景中,如果空值出现在values数组的中间,或缺少部分值,则最终的计算结果可能会受到一定程度的影响。建议在数据填充、清洗阶段确保每个点都有一个合理的值,或者使用更高级的插值方法。