Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@turf/points-within-polygon
Advanced tools
@turf/points-within-polygon is a module from the Turf.js library that allows you to determine which points from a set of points fall within a given polygon. This is particularly useful for geospatial analysis, such as finding all locations within a specific area.
Filter Points Within a Polygon
This feature allows you to filter a collection of points to find those that fall within a specified polygon. The code sample demonstrates creating a set of points and a polygon, then using the `pointsWithinPolygon` function to find which points are inside the polygon.
const turf = require('@turf/turf');
const points = turf.featureCollection([
turf.point([0, 0]),
turf.point([1, 1]),
turf.point([2, 2]),
turf.point([3, 3])
]);
const polygon = turf.polygon([[
[0, 0], [0, 2], [2, 2], [2, 0], [0, 0]
]]);
const pointsWithin = turf.pointsWithinPolygon(points, polygon);
console.log(pointsWithin);
Leaflet is a popular open-source JavaScript library for mobile-friendly interactive maps. It provides similar functionality for geospatial analysis, including the ability to check if points fall within a polygon. However, Leaflet is more focused on rendering maps and providing interactive features, whereas @turf/points-within-polygon is more focused on geospatial calculations.
Geolib is a library for geospatial calculations in JavaScript. It offers a variety of functions for distance calculations, bounding boxes, and point-in-polygon checks. While it provides similar functionality to @turf/points-within-polygon, Geolib is a more general-purpose library for geospatial calculations, whereas @turf/points-within-polygon is specifically designed for working with points and polygons.
Finds Points or MultiPoint coordinate positions that fall within (Multi)Polygon(s).
points
(Feature | FeatureCollection<(Point | MultiPoint)>) Point(s) or MultiPoint(s) as input searchpolygons
(FeatureCollection | Geometry | Feature<(Polygon | MultiPolygon)>) (Multi)Polygon(s) to check if points are withinvar points = turf.points([
[-46.6318, -23.5523],
[-46.6246, -23.5325],
[-46.6062, -23.5513],
[-46.663, -23.554],
[-46.643, -23.557]
]);
var searchWithin = turf.polygon([[
[-46.653,-23.543],
[-46.634,-23.5346],
[-46.613,-23.543],
[-46.614,-23.559],
[-46.631,-23.567],
[-46.653,-23.560],
[-46.653,-23.543]
]]);
var ptsWithin = turf.pointsWithinPolygon(points, searchWithin);
//addToMap
var addToMap = [points, searchWithin, ptsWithin]
turf.featureEach(ptsWithin, function (currentFeature) {
currentFeature.properties['marker-size'] = 'large';
currentFeature.properties['marker-color'] = '#000';
});
Returns FeatureCollection<(Point | MultiPoint)> Point(s) or MultiPoint(s) with positions that land within at least one polygon. The geometry type will match what was passsed in
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 single module individually:
$ npm install @turf/points-within-polygon
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf
FAQs
turf points-within-polygon module
The npm package @turf/points-within-polygon receives a total of 679,020 weekly downloads. As such, @turf/points-within-polygon popularity was classified as popular.
We found that @turf/points-within-polygon 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.