If the problem is “given an arbitrary point in space, find me the nearby things that might matter,” then use a hash grid (2D or 3D,) a quad tree (if 2D) or an octree (if 3D.)
These are well understood and described data structures, perform well, easy to understand and implement.
Note that codes DO NOT make those queries easy, because at the boundaries between segments, the “ID” jumps are quite large and discontiguous. The codes only help in hardware-specific implementations that need the memory locality properties – eg, GPUs may re-pack texture data into this kind of layout.
If you need to ask the question “I’m on this part of the nav grid/mesh/graph, what are the next steps possible,” then you solve that with the “graph” bit – every piece keeps pointers (perhaps with estimated costs) to their neighbors.
And if the question is simply “how do I store/index all the things within a single level,” then either a simple coordinate packing scheme, or a hash grid/table, will work fine. Or just sort by X-then-Y-then-Z if all you need is “a deterministic order.”