bbox-stream
An async iterable of coordinates within a bounding box.
Installing
npm install bbox-stream
Usage
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.