0.0.1 • Published 5 years ago

generate-point-in-polygon v0.0.1

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

generate-point-in-polygon

A small module to generate a point on a polygon in O(n) time.

Install

npm install generate-point-in-polygon

Documentation

Valid inputs: An array of polygon coordinates

    const generatePoint = require('generate-point-in-polygon')

    const poly = {type: 'Polygon', coordinates: [[[0, 5], [0, 0], [15, 0], [1, 0.5], [0, 5]]]}
    const p = generatePoint(poly.coordinates[0])
    //returns p = [0.5, 0.25]

Optionally, if you already know the index of a convex vertice, you can pass this in as an argument, this will help speed up the calculation.

    const generatePoint = require('generate-point-in-polygon')
    generatePoint(someBigPolygon.coordinates[0], 700)

Limitations

  • Only works on polygons without holes.

Benchmarks

// Switzerland
generate-point-in-polygon x 99,601 ops/sec ±1.59% (91 runs sampled)
turf point-on-feature x 69,499 ops/sec ±0.81% (90 runs sampled)

// Switzerland with identified convex vertice
generate-point-in-polygon x 157,610 ops/sec ±1.59% (91 runs sampled)
turf point-on-feature x 69,499 ops/sec ±0.81% (90 runs sampled)

// Spike case
// generate-point-in-polygon x 1,607,054 ops/sec ±1.00% (82 runs sampled)
// turf point-on-feature x 430,476 ops/sec ±0.68% (89 runs sampled)

Further Reading

Marco Tenuti's blog (using Google Translate!) and this blog