2.0.0 • Published 3 years ago
bbox-stream v2.0.0
bbox-stream
An async iterable of coordinates within a bounding box.
Installing
npm install bbox-streamUsage
Note: If you're looking for a stream.Readable: This package does not expose it anymore, but since the Node.js stream APIs directly support (sync) iterables and async iterables, you likely won't need it.
async iterable interface
const coordsIterable = require('bbox-stream')
const it = coordsIterable([52.4, 13.4, 52.6, 13.6], .1)
for await (const coords of it) console.log(coords){ lat: 52.4, lon: 13.4 }
{ lat: 52.5, lon: 13.4 }
{ lat: 52.6, lon: 13.4 }
{ lat: 52.4, lon: 13.5 }
{ lat: 52.5, lon: 13.5 }
{ lat: 52.6, lon: 13.5 }
{ lat: 52.4, lon: 13.6 }
{ lat: 52.5, lon: 13.6 }
{ lat: 52.6, lon: 13.6 }bbox must an array with 4 numbers, minLat, minLon, maxLat, maxLon. step must be a number.
You can pipe the async iterable into a Node.js stream.Writable using stream.pipeline():
const {pipeline} = require('stream')
pipeline(
it,
someWritableStream,
(err) => {
if (err) {
console.error(err)
process.exit(1)
}
}
)callbag interface
const pipe = require('callbag-pipe')
const coords = require('bbox-stream/callbag')
const forEach = require('callbag-for-each')
pipe(
coords([52.4, 13.4, 52.6, 13.6], .1),
forEach(console.log)
)Contributing
If you have a question, found a bug or want to propose a feature, have a look at the issues page.