![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@turf/boolean-within
Advanced tools
@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.
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
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 (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 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.
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
feature1
(Geometry | Feature<any>) GeoJSON Feature or Geometryfeature2
(Geometry | Feature<any>) GeoJSON Feature or GeometryExamples
var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);
var point = turf.point([1, 2]);
turf.booleanWithin(point, line);
//=true
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.
Install this module individually:
$ npm install @turf/boolean-within
Or install the Turf module that includes it as a function:
$ npm install @turf/turf
6.2.0
After a bit of hiatus, TurfJS is resuming releases.
@turf/boolean-touches
][boolean-touches]Determines if two features touch but do not intersect
@turf/boolean-valid
][boolean-valid]Checks if the geometry is a valid according to the OGC Simple Feature Specification
@turf/quadrat-analysis
][quadrat-analysis]Performs a quadrat analysis on a set of points
@turf/rectangle-grid
][rectangle-grid]Creates a grid of rectangles from a bounding box
@turf/voroni
][voronoi]Typescript types for the options parameter have been fixed (PR https://github.com/Turfjs/turf/pull/1424 - Author @stevage)
@turf/points-within-polygon
][points-within-polygon]Typescript types around the Feature's Properties will now be preserved. (PR https://github.com/Turfjs/turf/pull/1761 - Author @rugheid)
@turf/rewind
][rewind]Typescript types for the 'reverse' option are now correct. Previously it was misnamed as 'reversed'. (PR https://github.com/Turfjs/turf/pull/1786 - Author @jonnycornwell)
@turf/difference
][difference]No longer publishes an .mjs file.
@turf/meta
][meta]No longer publishes an .mjs file.
@turf/tag
][tag]Add MultiPolygon support. (PR https://github.com/Turfjs/turf/pull/1996 - Author bryceroney)
@turf/centroid
Don't visit first point twice when calculating centroid
(PR https://github.com/Turfjs/turf/pull/1894 - Author @rowanwins)
@turf/transform-translate
Better handling of negative distances
(PR https://github.com/Turfjs/turf/pull/1895 - Author @rowanwins)
@turf/union
, @turf/difference
, @turf/intersect
Use polygon-clipping library to fix correctness issues
(PR https://github.com/Turfjs/turf/pull/1916 - Authors @mbullington, @ngottlieb)
@turf/buffer
Change default number of steps to 8, and actually support the steps option
(PR https://github.com/Turfjs/turf/pull/1931 - Author stevenchanin)
@turf/buffer
Fix projection issues that produce undersized buffers at non-equatorial latitudes
(PR https://github.com/Turfjs/turf/pull/1956 - Author dyakovlev)
@turf/helpers
Add runtime checks to point() method, fixing an API break
(PR https://github.com/Turfjs/turf/pull/1964)
@turf/boolean-overlap
Better performance for MultiPoint geometries
(PR https://github.com/Turfjs/turf/pull/1910 - Author @mfedderly)
@turf/helpers
Add hectares to convertArea
(PR https://github.com/Turfjs/turf/pull/1943 - Author @DanielJDufour)
@turf/great-circle
Update Typescript types to support MultiLineString input
(PR https://github.com/Turfjs/turf/pull/1928 - Author kronick)
@turf/square-grid
Clarify inputs
(PR https://github.com/Turfjs/turf/pull/1885 - Author @raphael-leger)
@turf/greater-circle
Clarify properties option example
(PR https://github.com/Turfjs/turf/pull/1888 - Author @chris-catignani)
@turf/line-to-polygon
no longer modifies its input unless the mutate option is true
(PR https://github.com/Turfjs/turf/pull/1879 - Author @MortenBirk)
@turf/unkink-polygon
remove Number.prototype.modulo override
(PR https://github.com/Turfjs/turf/pull/1978)
FAQs
turf boolean-within module
The npm package @turf/boolean-within receives a total of 993,137 weekly downloads. As such, @turf/boolean-within popularity was classified as popular.
We found that @turf/boolean-within demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.