首页 / Turf.js / API 文档
lineSlice
先看结论
给定两个位置,取它们在线上之间的那一段。
turf.lineSlice(startPt, stopPt, line) → Feature
参数
| 参数 | 类型 | 说明 |
|---|---|---|
startPt | Coord / Feature | 起点,会先投影到线上 |
stopPt | Coord / Feature | 终点 |
line | Feature | 被截取的线 |
返回值
线段要素。起点在终点之后时返回空线,长度为 0。
示例
var line = turf.lineString([[116.30, 39.90], [116.40, 39.93], [116.50, 39.90]]);
var a = turf.point([116.33, 39.91]);
var b = turf.point([116.46, 39.91]);
var part = turf.lineSlice(a, b, line);
console.log(turf.length(part, { units: 'kilometers' }));
与 lineSliceAlong 的区别
lineSlice 按位置截取,输入是两个点;
lineSliceAlong 按里程截取,输入是起止距离。
有累计里程字段时,后者更直接。
方向
截取结果的方向与原始线一致,不随起点终点顺序反转。 需要反向结果时,把坐标数组反转后重新构造。
投影点可能落在顶点之外。起点在线的延长线附近时, 投影会落到最近的端点,截取结果从端点开始,长度比预期短。
经纬志(2026)。《lineSlice》。https://www.jingweizhi.com/turf/api/line-slice.html(访问日期 2026-11-03)。