coordReduce
函数可以将一系列的坐标点列表转化成单个点,具体的转换方式可以通过传入的 reducer
函数指定。例如,将一段路线中的所有点转化成该路线的中心点。
coordReduce(points, reducer)
points
(Array<Number[]>
):一系列坐标点数组的数组,例如 [[lng1, lat1], [lng2, lat2], ...]
。reducer
(Function
):一个用于执行坐标点约简操作的自定义函数。该函数应该接受两个参数:一个累加器和当前的坐标点。该函数应该返回一个新的累加器值。Array<Number>
): reduced coords作为 coordReduce
函数的第二个参数,reducer
函数应该满足以下两个条件:
reducer(accumulator, currentPoint)
import { coordReduce } from '@turf/turf';
const points = [
[-79.0269, 43.2581],
[-104.9847, 39.7376],
[-104.9850, 39.7392],
[-104.9855, 39.7400]
];
const reducer = (accumulator, currentPoint) => [
accumulator[0] + currentPoint[0],
accumulator[1] + currentPoint[1]
];
const center = coordReduce(points, reducer);
console.log(center); // [-348.98199999999997, 162.97489999999998]
该函数默认使用累加器初始值为 [0,0]
。请注意传入的 reducer
函数应该使用有效的累加器值类型。