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

lineSlice

先看结论

给定两个位置,取它们在线上之间的那一段。

最后验证 2026-11-03 · Turf.js 7.x · 更新 2026-10-27 · 引用本文
turf.lineSlice(startPt, stopPt, line) → Feature

参数

参数类型说明
startPtCoord / Feature起点,会先投影到线上
stopPtCoord / Feature终点
lineFeature被截取的线

返回值

线段要素。起点在终点之后时返回空线,长度为 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)。