经纬志
首页 / Turf.js / API 文档

pointToLineDistance

先看结论

点到线的最短距离,默认按球面计算,返回公里数。

最后验证 2026-11-03 · Turf.js 7.x · 更新 2026-10-27 · 引用本文
turf.pointToLineDistance(pt, line, options) → number

参数

参数类型说明
ptCoord / Feature待测点
lineFeatureLineString 或 MultiLineString
options.unitsstring默认 kilometers
options.methodstringgeodesic(默认)或 planar

返回值

数字,单位由 units 决定。线少于两个点时返回 NaN。

示例

var river = turf.lineString([[116.30, 39.90], [116.40, 39.95], [116.50, 39.92]]);
var p = turf.point([116.40, 39.90]);

console.log(turf.pointToLineDistance(p, river, { units: 'meters' }));

两种算法的差别

method适用误差
geodesic跨城市、长距离球面近似,公里级误差很小
planar小范围、已投影坐标依赖投影,经纬度数据会失真

距离为 0 不一定意味着点在线上。点落在延长线的端点外侧时, 最近点就是端点,此时距离等于到端点的距离,容易误判为重合。

引用本文

经纬志(2026)。《pointToLineDistance》。https://www.jingweizhi.com/turf/api/point-to-line-distance.html(访问日期 2026-11-03)。