Security News
Highlights from the 2024 Rails Community Survey
A record 2,709 developers participated in the 2024 Ruby on Rails Community Survey, revealing key tools, practices, and trends shaping the Rails ecosystem.
@turf/intersect
Advanced tools
@turf/intersect is a module of the Turf.js library that provides geospatial analysis tools. Specifically, it allows users to compute the intersection of two or more geometries, such as polygons or lines. This is useful in various applications like geographic information systems (GIS), urban planning, and environmental modeling.
Polygon Intersection
This feature allows you to find the intersection of two polygons. The code sample demonstrates how to create two polygons and compute their intersection.
const turf = require('@turf/turf');
const polygon1 = turf.polygon([[[0, 0], [2, 0], [2, 2], [0, 2], [0, 0]]]);
const polygon2 = turf.polygon([[[1, 1], [3, 1], [3, 3], [1, 3], [1, 1]]]);
const intersection = turf.intersect(polygon1, polygon2);
console.log(intersection);
Line Intersection
This feature allows you to find the intersection of two lines. The code sample demonstrates how to create two lines and compute their intersection.
const turf = require('@turf/turf');
const line1 = turf.lineString([[0, 0], [2, 2]]);
const line2 = turf.lineString([[0, 2], [2, 0]]);
const intersection = turf.intersect(line1, line2);
console.log(intersection);
MultiPolygon Intersection
This feature allows you to find the intersection of two multipolygons. The code sample demonstrates how to create two multipolygons and compute their intersection.
const turf = require('@turf/turf');
const multiPolygon1 = turf.multiPolygon([[[[0, 0], [2, 0], [2, 2], [0, 2], [0, 0]]]]);
const multiPolygon2 = turf.multiPolygon([[[[1, 1], [3, 1], [3, 3], [1, 3], [1, 1]]]]);
const intersection = turf.intersect(multiPolygon1, multiPolygon2);
console.log(intersection);
JSTS (JavaScript Topology Suite) is a JavaScript library for performing various geometric operations, including intersections. It is similar to @turf/intersect but offers a broader range of geometric functions and is based on the Java Topology Suite (JTS).
Martinez Polygon Clipping is a library for performing boolean operations on polygons, such as intersection, union, and difference. It is highly efficient and specifically designed for polygon operations, making it a good alternative to @turf/intersect for polygon-specific tasks.
RBush is a high-performance JavaScript library for 2D spatial indexing of points and rectangles. While it does not directly perform intersections, it can be used in conjunction with other libraries to efficiently manage and query spatial data, which can then be used for intersection operations.
Takes two polygons and finds their intersection. If they share a border, returns the border; if they don't intersect, returns undefined.
Parameters
poly1
Feature<Polygon> the first polygonpoly2
Feature<Polygon> the second polygonExamples
var poly1 = {
"type": "Feature",
"properties": {
"fill": "#0f0"
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-122.801742, 45.48565],
[-122.801742, 45.60491],
[-122.584762, 45.60491],
[-122.584762, 45.48565],
[-122.801742, 45.48565]
]]
}
}
var poly2 = {
"type": "Feature",
"properties": {
"fill": "#00f"
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-122.520217, 45.535693],
[-122.64038, 45.553967],
[-122.720031, 45.526554],
[-122.669906, 45.507309],
[-122.723464, 45.446643],
[-122.532577, 45.408574],
[-122.487258, 45.477466],
[-122.520217, 45.535693]
]]
}
}
var polygons = {
"type": "FeatureCollection",
"features": [poly1, poly2]
};
var intersection = turf.intersect(poly1, poly2);
//=polygons
//=intersection
Returns (Feature<Polygon> | undefined | Feature<MultiLineString>) if poly1
and poly2
overlap, returns a Polygon feature representing the area they overlap; if poly1
and poly2
do not overlap, returns undefined
; if poly1
and poly2
share a border, a MultiLineString of the locations where their borders are shared
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-intersect
Or install the Turf module that includes it as a function:
$ npm install turf
FAQs
turf intersect module
The npm package @turf/intersect receives a total of 427,758 weekly downloads. As such, @turf/intersect popularity was classified as popular.
We found that @turf/intersect demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 9 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
A record 2,709 developers participated in the 2024 Ruby on Rails Community Survey, revealing key tools, practices, and trends shaping the Rails ecosystem.
Security News
In 2023, data breaches surged 78% from zero-day and supply chain attacks, but developers are still buried under alerts that are unable to prevent these threats.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.