Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@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
Examples
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 | undefined) returns a feature representing the point(s) they share (in case of a Point or MultiPoint), the borders they share (in case of a LineString or a MultiLineString), the area they share (in case of Polygon or MultiPolygon). If they do not share any point, returns undefined
.
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/turf
FAQs
turf intersect module
The npm package @turf/intersect receives a total of 0 weekly downloads. As such, @turf/intersect popularity was classified as not 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
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.