Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've been out of it for a while, but the wikipedia page on z-order is probably a good place to start. https://en.wikipedia.org/wiki/Z-order_curve. This discusses the basic idea of using a space-filling curve to map data to 1-d, and then using a conventional search structure. Hilbert curves should preserve proximity better.

Sorry to toot my own horn, but I wrote some papers that should be useful to someone learning the topic:

1) Algorithms based on space-filling curves for spatial join, a generalization of range search, points in a polygon, etc.: Orenstein & Manola, IEEE Transactions on Software Engineering, Volume 14.

2) How to tune the index for non-point spatial objects: Orenstein, ACM SIGMOD 1989.

You might also find my software, which implements these ideas, useful: https://github.com/geophile

There have been many papers elaborating on the idea, but I haven't kept up with the area. Given that you can get such good results using space-filling curves and standard data structures, I think it's nuts to do anything else. I mean look at Postgres and MySQL. The spatial indexes in these systems have never been fully integrated because they are distinct index structures, always lagging behind progress with the main index structures.



In postgres not much has happened around geospatial in core, because there's a lot happening in postgis.

FWIW, you can define additional types of index access methods in postgres (from scratch), or you can gist / gin / spgist access methods where you need to care about a lot less. All are used in the wild.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: