首页 / Turf.js / API 文档
pointToLineDistance
先看结论
点到线的最短距离,默认按球面计算,返回公里数。
turf.pointToLineDistance(pt, line, options) → number
参数
| 参数 | 类型 | 说明 |
|---|---|---|
pt | Coord / Feature | 待测点 |
line | Feature | LineString 或 MultiLineString |
options.units | string | 默认 kilometers |
options.method | string | geodesic(默认)或 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)。