Searches the packed R-tree and returns the matching features' offsets,
sorted ascending so the caller reads the feature section forwards.
rtreeBegin is the absolute byte offset of node 0 (layout.rtreeBegin),
numItems the feature count the tree was built over, and nodeSize the
header's index_node_size -- WHICH MUST BE PASSED, never assumed to be
the default 16. Both the wasm binding and fcb_core's HTTP reader hardcode
16 and silently mis-traverse a file written with any other node size.
Breadth-first over node RANGES, not individual nodes, so the reads run in
roughly ascending file order and one read covers a whole sibling group.
The await sits at the top of the loop body: the queue is drained in the
order it was filled, and no two node reads are in flight at once, which
keeps the request log deterministic and reviewable.
opts.signal is threaded into EVERY read. A signal that only lived on
the facade would cancel nothing: the traversal is where the in-flight
fetches are.
Searches the packed R-tree and returns the matching features' offsets, sorted ascending so the caller reads the feature section forwards.
rtreeBeginis the absolute byte offset of node 0 (layout.rtreeBegin),numItemsthe feature count the tree was built over, andnodeSizethe header'sindex_node_size-- WHICH MUST BE PASSED, never assumed to be the default 16. Both the wasm binding andfcb_core's HTTP reader hardcode 16 and silently mis-traverse a file written with any other node size.Breadth-first over node RANGES, not individual nodes, so the reads run in roughly ascending file order and one read covers a whole sibling group. The
awaitsits at the top of the loop body: the queue is drained in the order it was filled, and no two node reads are in flight at once, which keeps the request log deterministic and reviewable.opts.signalis threaded into EVERYread. A signal that only lived on the facade would cancel nothing: the traversal is where the in-flight fetches are.