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
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
4.7.0
🚀 New Modules
[@turf/projection
][projection]
- toMercator: Converts a WGS84 GeoJSON object into Mercator (EPSG:900913) projection
- toWgs84: Converts a Mercator (EPSG:900913) GeoJSON object into WGS84 projection
(PR https://github.com/Turfjs/turf/pull/927 - Author @stebogit)
[@turf/point-to-line-distance
][point-to-line-distance]
Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the minimum distance between the point and any segment of the LineString
.
(PR https://github.com/Turfjs/turf/pull/925 - Author @stebogit)
[@turf/boolean-within
][boolean-within]
Boolean-within returns true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and, the interior and boundary of the primary (geometry a) must not intersect the exterior of the secondary (geometry b). Boolean-within returns the exact opposite result of the [@turf/boolean-contains
][boolean-contains].
(PR https://github.com/Turfjs/turf/pull/924 - Author @rowanwins)
🏅 New Features/Enhancements
- Updates [
@turf/unkink-polygon
][unkink-polygon] testing & added flattenEach
instead of using flatten
.
(PR https://github.com/Turfjs/turf/pull/889) - [
@turf/concave
][concave] refactoring, replacing [@turf/union
][union] with geojson-dissolve
to increase speed and added support to null
geometries
(PR https://github.com/Turfjs/turf/pull/907 - Contributor @stebogit @DenisCarriere) - Adds doc note on [
@turf/polygonize
][polygonize] about "Edges must be correctly noded"
(PR https://github.com/Turfjs/turf/pull/898 - Contributor @stebogit @NickCis) - Adds support to foreign Members to [
@turf/clone
][clone]
(PR https://github.com/Turfjs/turf/pull/904 - Contributor @DenisCarriere) - Extends support of any
GeoJSON
to [@turf/simplify
][simplify]
(PR https://github.com/Turfjs/turf/pull/903 - Contributor @DenisCarriere @stebogit) - Adds new
isNumber
function and improves type checking for few [@turf/helpers
][helpers] methods
(PR https://github.com/Turfjs/turf/pull/920 - Contributor @DenisCarriere @stebogit) - Adds throw errors to invalid
MultiPolygons
for [@turf/simplify
][simplify]
(PR https://github.com/Turfjs/turf/pull/922 - Contributor @DenisCarriere)
🐛 Bug Fixes
- Fixes
@turf/bbox-clip
point intersection handling, adding sanity-checks the lineclip output
(PR https://github.com/Turfjs/turf/pull/886) - Fixes [
@turf/line-split
][line-split] endpoint case handling applying [@turf/truncate
][truncate] on splitter
(PR https://github.com/Turfjs/turf/pull/892 and https://github.com/Turfjs/turf/pull/855 - Contributor @stebogit) - Fixes [
@turf/intersect
][intersect] throwing "uncaught exception", adding [@turf/truncate
][truncate] to inputs and returning Feature<null>
if no geometry
(PR https://github.com/Turfjs/turf/pull/890 - Contributor @stebogit @vicvolk) - Fixes [
@turf/hex-grid
][hex-grid] not properly cloning the last ring vertex
(PR https://github.com/Turfjs/turf/pull/897 - Contributor @stebogit @DenisCarriere) - Fixes [
@turf/boolean-disjoint
][boolean-disjoint] incorrect behaviour where a poly was completely contained within another poly
(PR https://github.com/Turfjs/turf/pull/908 - Contributor @rowanwins) - Fixes [
@turf/simplify
][simplify] process pending on particular geometries, applying [@turf/clean-coords
][clean-coords] to input.
(PR https://github.com/Turfjs/turf/pull/903 - Contributor @stebogit @DenisCarriere) - Fixes
boolean
properties not being translated with [@turf/clone
][clone]
(PR https://github.com/Turfjs/turf/pull/909 - Contributor @DenisCarriere) - Fixes [
@turf/boolean-contains
][boolean-contains] incorrect output when checking two polygons
(PR https://github.com/Turfjs/turf/pull/923 - Contributor @rowanwins @DenisCarriere)