{"_id":"kdgrass","_rev":"2-0e060796b677984b1ecb23976a6df4c1","name":"kdgrass","description":"KDBush with flat API","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"kdgrass","version":"1.0.0","description":"KDBush with flat API","main":"index.js","repository":{"type":"git","url":"git://github.com/dfcreative/kdgrass.git"},"devDependencies":{"tape":"^4.6.2"},"scripts":{"test":"tape test.js"},"keywords":["index","points","kd-tree","kdbush","data structures","algorithms","spatial","geometry"],"author":{"name":"Vladimir Agafonkin"},"contributors":[{"name":"Dima Yv"}],"license":"ISC","gitHead":"87c6d771c807448fdf19f9e8a270e38785d69cd7","bugs":{"url":"https://github.com/dfcreative/kdgrass/issues"},"homepage":"https://github.com/dfcreative/kdgrass#readme","_id":"kdgrass@1.0.0","_npmVersion":"5.0.1","_nodeVersion":"6.2.0","_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"dist":{"integrity":"sha512-7BlYuAnXE2+po4ay3fng+E+v4wjJsfSG7i0Fo8mIEKpJCAFAX1nrhvDNrkwKxvPqzd/nwocAm9ZqY1k/nya7MQ==","shasum":"7a12a2475f825456b0ca83cb2fb1b55f43a195c4","tarball":"https://registry.npmjs.org/kdgrass/-/kdgrass-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEZcwPy6yBlZ0pYqcq8mtiu3qrLd+4MH18C5YjY4lyIAiBcFQzTtqdJPMQlwsDl3r+s3D77oEs7JsYt3lPAS6g1RA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kdgrass-1.0.0.tgz_1496378322610_0.7481440084520727"}},"1.0.1":{"name":"kdgrass","version":"1.0.1","description":"KDBush with flat API","main":"index.js","repository":{"type":"git","url":"git://github.com/dfcreative/kdgrass.git"},"devDependencies":{"tape":"^4.6.2"},"scripts":{"test":"tape test.js"},"keywords":["index","points","kd-tree","kdbush","data structures","algorithms","spatial","geometry"],"author":{"name":"Vladimir Agafonkin"},"contributors":[{"name":"Dima Yv"}],"license":"ISC","gitHead":"37896b78f5fcfebb7d998ca1cd8f145ccada86da","bugs":{"url":"https://github.com/dfcreative/kdgrass/issues"},"homepage":"https://github.com/dfcreative/kdgrass#readme","_id":"kdgrass@1.0.1","_npmVersion":"5.0.1","_nodeVersion":"6.2.0","_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"dist":{"integrity":"sha512-2sfleTaNfu4AQdL9Om42i7D+NnnIwTd+MJYkbCdyv1DvFtHkLLBc8ZwrM2nD1zp4AuSBzCfoDSWcba4c7iHodQ==","shasum":"8c2a72df8f81f27d98617e30569420136a72fcd3","tarball":"https://registry.npmjs.org/kdgrass/-/kdgrass-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDuE1Rztb7lgaZ4OxYcuWgCQuB909pI3nKGFEX9/dOVqAiEA7nQ3aHd+CvWK4JHJQoWVx7WXUEKSwMUhJeL6SDV4iSo="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kdgrass-1.0.1.tgz_1496443416541_0.4440295472741127"}}},"readme":"## kdgrass  [![unstable](https://img.shields.io/badge/stability-unstable-green.svg)](http://github.com/badges/stability-badges) [![Build Status](https://img.shields.io/travis/dfcreative/kdgrass.svg)](https://travis-ci.org/dfcreative/kdgrass)\r\n\r\n[KDBush](https://github.com/mourner/kdbush) with flat API, which turns out to be even faster.\r\n\r\n[![npm install kdgrass](https://nodei.co/npm/kdgrass.png?mini=true)](https://npmjs.org/package/kdgrass/)\r\n\r\n```js\r\nconst kdgrass = require('kdgrass')\r\n\r\nlet grass = kdgrass(points);\r\nlet ids1 = grass.range(10, 10, 20, 20);  // bbox search - minX, minY, maxX, maxY\r\nlet ids2 = grass.within(10, 10, 5);      // radius search - x, y, radius\r\n```\r\n\r\n## API\r\n\r\n### let grass = kdgrass(points, nodeSize?)\r\n\r\nCreates an index from the given points.\r\n\r\n- `points`: Input array of points in `[x, y, x, y, ...]` form.\r\n- `nodeSize`: Size of the KD-tree node, `64` by default. Higher means faster indexing but slower search, and vise versa.\r\n\r\n```js\r\nlet index = kdgrass(points, 64);\r\n```\r\n\r\n### grass.range(minX, minY, maxX, maxY)\r\n\r\nFinds all items within the given bounding box and returns an array of indices that refer to the items in the original `points` input array.\r\n\r\n```js\r\nlet results = index.range(10, 10, 20, 20).map((id) => points[id]);\r\n```\r\n\r\n### grass.within(x, y, radius)\r\n\r\nFinds all items within a given radius from the query point and returns an array of indices.\r\n\r\n```js\r\nlet results = index.within(10, 10, 5).map((id) => points[id]);\r\n```\r\n\r\n## See also\r\n\r\n* [kdbush](https://github.com/mourner/kdbush) − initial implementation with verbose API.\r\n* [rbush](https://github.com/mourner/rbush) — r-tree implementation with  insertion/removal API.\r\n","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"time":{"modified":"2022-05-07T05:18:04.979Z","created":"2017-06-02T04:38:43.552Z","1.0.0":"2017-06-02T04:38:43.552Z","1.0.1":"2017-06-02T22:43:37.598Z"},"homepage":"https://github.com/dfcreative/kdgrass#readme","keywords":["index","points","kd-tree","kdbush","data structures","algorithms","spatial","geometry"],"repository":{"type":"git","url":"git://github.com/dfcreative/kdgrass.git"},"contributors":[{"name":"Dima Yv"}],"author":{"name":"Vladimir Agafonkin"},"bugs":{"url":"https://github.com/dfcreative/kdgrass/issues"},"license":"ISC","readmeFilename":"readme.md"}