What is @turf/line-slice?
@turf/line-slice is a module from the Turf.js library that allows you to extract a portion of a LineString between two points. This can be useful for various geospatial operations such as trimming routes, creating sub-paths, or analyzing specific segments of a path.
What are @turf/line-slice's main functionalities?
Extracting a LineString segment
This feature allows you to extract a segment of a LineString between two specified points. The code sample demonstrates how to create a LineString and then slice it between two points using the `lineSlice` function.
const turf = require('@turf/turf');
const line = turf.lineString([
[-77.031669, 38.878605],
[-77.029609, 38.881946],
[-77.020339, 38.884084],
[-77.025661, 38.885821],
[-77.021884, 38.889563],
[-77.019824, 38.892368]
]);
const start = turf.point([-77.029609, 38.881946]);
const stop = turf.point([-77.021884, 38.889563]);
const sliced = turf.lineSlice(start, stop, line);
console.log(JSON.stringify(sliced));
Other packages similar to @turf/line-slice
polyline
The 'polyline' package is used for encoding and decoding Google Maps Polylines. While it doesn't offer slicing capabilities directly, it is useful for handling polyline data, which can then be manipulated using other tools.
geojson-tools
The 'geojson-tools' package provides various utilities for manipulating GeoJSON data, including line splitting and other geometric operations. It offers a broader range of functionalities compared to @turf/line-slice but may require more complex operations to achieve similar results.
@turf/line-slice
lineSlice
Takes a line, a start Point, and a stop point
and returns a subsection of the line in-between those points.
The start & stop points don't need to fall exactly on the line.
This can be useful for extracting only the part of a route between waypoints.
Parameters
Examples
var line = turf.lineString([
[-77.031669, 38.878605],
[-77.029609, 38.881946],
[-77.020339, 38.884084],
[-77.025661, 38.885821],
[-77.021884, 38.889563],
[-77.019824, 38.892368]
]);
var start = turf.point([-77.029609, 38.881946]);
var stop = turf.point([-77.021884, 38.889563]);
var sliced = turf.lineSlice(start, stop, line);
var addToMap = [start, stop, line]
Returns Feature<LineString> sliced line
This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.
Installation
Install this single module individually:
$ npm install @turf/line-slice
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf