What is @turf/boolean-point-on-line?
@turf/boolean-point-on-line is a module from the Turf.js library that allows you to determine if a given point lies on a line. This can be useful for various geospatial analyses, such as validating routes, checking if a location is on a path, or any other scenario where you need to verify point-line relationships.
What are @turf/boolean-point-on-line's main functionalities?
Check if a point is on a line
This feature allows you to check if a specific point lies on a given line. In the code sample, the point [2, 2] is checked against a line that passes through [1, 1], [3, 3], and [4, 4]. The result is true because the point lies on the line.
const turf = require('@turf/turf');
const point = turf.point([2, 2]);
const line = turf.lineString([[1, 1], [3, 3], [4, 4]]);
const isPointOnLine = turf.booleanPointOnLine(point, line);
console.log(isPointOnLine); // true
Check if a point is on a line with a tolerance
This feature allows you to check if a point is on a line within a specified tolerance. In the code sample, the point [2, 2.1] is checked against the same line with a tolerance of 0.2. The result is true because the point is within the tolerance range of the line.
const turf = require('@turf/turf');
const point = turf.point([2, 2.1]);
const line = turf.lineString([[1, 1], [3, 3], [4, 4]]);
const isPointOnLine = turf.booleanPointOnLine(point, line, { tolerance: 0.2 });
console.log(isPointOnLine); // true
Other packages similar to @turf/boolean-point-on-line
point-in-polygon
The 'point-in-polygon' package allows you to check if a point is inside a polygon. While it doesn't check for points on lines, it is useful for similar geospatial analyses where you need to determine point-in-shape relationships.
geolib
The 'geolib' package provides a variety of geospatial functions, including checking if a point is on a line. It offers more general-purpose geospatial utilities compared to @turf/boolean-point-on-line, which is more specialized.
leaflet
Leaflet is a popular library for interactive maps. While it is primarily used for rendering maps, it also provides some geospatial analysis functions, including checking if a point is on a line. It is more comprehensive in terms of mapping capabilities compared to @turf/boolean-point-on-line.
@turf/boolean-point-on-line
booleanPointOnLine
Returns true if a point is on a line. Accepts a optional parameter to ignore the start and end vertices of the linestring.
Parameters
point
Coord GeoJSON Pointlinestring
Feature<LineString> GeoJSON LineStringoptions
Object Optional parameters (optional, default {}
)
options.ignoreEndVertices
boolean whether to ignore the start and end vertices. (optional, default false
)
Examples
var pt = turf.point([0, 0]);
var line = turf.lineString([[-1, -1],[1, 1],[1.5, 2.2]]);
var isPointOnLine = turf.booleanPointOnLine(pt, line);
Returns boolean true/false
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 module individually:
$ npm install @turf/boolean-point-on-line
Or install the Turf module that includes it as a function:
$ npm install @turf/turf
5.0.0 🎉
⭐️ Major Updates
- TurfJS now supports ES Modules (Related PR's)
- Optional parameters are now defined as an
Object
.
🚀 New Modules
[@turf/voronoi
][voronoi]
Takes a FeatureCollection of points, and a bounding box, and returns a FeatureCollection of Voronoi polygons.
(PR https://github.com/Turfjs/turf/pull/1043 - Author @stevage)
[@turf/shortest-path
][shortest-path]
Returns the shortest path from start to end without colliding with any feature in obstacles
(PR https://github.com/Turfjs/turf/pull/956 - Author @stebogit)
[@turf/boolean-parallel
][boolean-parallel]
Boolean-Parallel returns True if each segment of line1
is parallel to the correspondent segment of line2
(PR https://github.com/Turfjs/turf/pull/941 - Author @stebogit)
[@turf/nearest-point-on-line
][nearest-point-on-line]
Takes a {@link Point} and a {@link LineString} and calculates the closest Point on the (Multi)LineString.
(PR https://github.com/Turfjs/turf/pull/939 - Author @stebogit)
🏅 New Features/Enhancements
-
Updates [@turf/unkink-polygon
][unkink-polygon] testing & added flattenEach
instead of using flatten
.
(PR https://github.com/Turfjs/turf/pull/889)
-
Add multi-geomtry support to @turf/line-split
(PR https://github.com/Turfjs/turf/pull/1078)
-
Improve @turf/meta
lineEach
method to provide properties, id and bbox
(PR https://github.com/Turfjs/turf/pull/1010)
🐛 Bug Fixes
-
Fixes @turf/helpers
earth radius variable
(PR https://github.com/Turfjs/turf/pull/1012)
-
Fixes @turf/polygon-tangents
bug
(PR https://github.com/Turfjs/turf/pull/1058)
-
Fixes @turf/line-chunk
bug when the number of segments is integer
(PR https://github.com/Turfjs/turf/pull/1046)
-
Fixes segmentEach
and segmentReduce
methods in @turf/meta
to ensure something is returned
(PR https://github.com/Turfjs/turf/pull/968)
⚠️ Breaking Change
- Optional parameters are now defined as an
Object
:
Before
var from = [-75.343, 39.984];
var to = [-75.534, 39.123];
var units = 'miles';
var distance = turf.distance(from, to, units);
After
var from = [-75.343, 39.984];
var to = [-75.534, 39.123];
var options = {units: 'miles'};
var distance = turf.distance(from, to, options);
- Reworked
@turf/random
PR https://github.com/Turfjs/turf/issues/994 - Deprecate
@turf/idw
Issue https://github.com/Turfjs/turf/issues/887 - Reworked Grid modules
@turf/point-grid/hex/square/triangle
PR https://github.com/Turfjs/turf/pull/1029 - Renamed Modules/Methods
- [x]
@turf/inside
=> @turf/boolean-point-in-polygon
https://github.com/Turfjs/turf/issues/860#issuecomment-317216235 - [x]
@turf/within
=> @turf/points-within-polygon
https://github.com/Turfjs/turf/issues/860#issuecomment-317216235 - [x]
@turf/bezier
=> @turf/bezier-spline
Issue https://github.com/Turfjs/turf/issues/661 - [x]
@turf/nearest
=> @turf/nearest-point
https://github.com/Turfjs/turf/pull/858#issuecomment-317197295 - [x]
@turf/point-on-line
=> @turf/nearest-point-on-line
https://github.com/Turfjs/turf/pull/858#issuecomment-317197295 - [x]
@turf/lineDistance
=> @turf/length
https://github.com/Turfjs/turf/issues/860#issuecomment-317229869 - [x]
@turf/helpers
- [x]
radians2degrees
=> radiansToDegrees
- [x]
degrees2radians
=> degreesToRadians
- [x]
distanceToDegrees
=> lengthToDegrees
- [x]
distanceToRadians
=> lengthToRadians
- [x]
radiansToDistance
=> radiansToLength
- [x]
bearingToAngle
=> bearingToAzimuth
- [x]
convertDistance
=> convertLength