What is @turf/boolean-within?
@turf/boolean-within is a module from the Turf.js library that provides geospatial analysis tools. This specific module is used to determine if a given geometry (point, line, polygon) is within another geometry. It is useful for spatial queries and geographic information system (GIS) applications.
What are @turf/boolean-within's main functionalities?
Point within Polygon
This feature checks if a point is within a polygon. The code sample creates a point and a polygon, then uses the booleanWithin function to determine if the point is inside the polygon.
const turf = require('@turf/turf');
const point = turf.point([2, 2]);
const polygon = turf.polygon([[
[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]
]]);
const isWithin = turf.booleanWithin(point, polygon);
console.log(isWithin); // true
LineString within Polygon
This feature checks if a LineString is within a polygon. The code sample creates a LineString and a polygon, then uses the booleanWithin function to determine if the LineString is inside the polygon.
const turf = require('@turf/turf');
const line = turf.lineString([[1, 1], [2, 2], [3, 3]]);
const polygon = turf.polygon([[
[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]
]]);
const isWithin = turf.booleanWithin(line, polygon);
console.log(isWithin); // true
Polygon within Polygon
This feature checks if a polygon is within another polygon. The code sample creates an inner polygon and an outer polygon, then uses the booleanWithin function to determine if the inner polygon is inside the outer polygon.
const turf = require('@turf/turf');
const innerPolygon = turf.polygon([[
[1, 1], [1, 4], [4, 4], [4, 1], [1, 1]
]]);
const outerPolygon = turf.polygon([[
[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]
]]);
const isWithin = turf.booleanWithin(innerPolygon, outerPolygon);
console.log(isWithin); // true
Other packages similar to @turf/boolean-within
geolib
Geolib is a library for geospatial calculations. It provides functions to check if a point is inside a polygon, similar to @turf/boolean-within. However, it does not support more complex geometries like LineStrings or Polygons within Polygons.
jsts
JSTS (JavaScript Topology Suite) is a library for performing various geometric operations. It includes functions to check if geometries are within other geometries, similar to @turf/boolean-within. JSTS is more comprehensive and supports a wider range of geometric operations.
leaflet
Leaflet is a popular library for interactive maps. It includes basic geospatial analysis functions, such as checking if a point is within a polygon. However, its primary focus is on map rendering and interaction, not on complex geospatial analysis.
@turf/boolean-within
booleanWithin
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
.
Parameters
Examples
var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);
var point = turf.point([1, 2]);
turf.booleanWithin(point, 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 single module individually:
$ npm install @turf/boolean-within
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf