Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am looking for a way to do fast KNN queries on a dataset of 10+ million 3D points (and growing). I was hoping PostGIS would do the trick with its new <-> and <#> operators, but they don't seem to work in three dimensions. Does anyone know any workarounds that would extend the KNN GiST index to 3D? Right now I'm using a "normal" spatial index with the &&& operator, but that creates all the issues that led to the addition of the KNN index in the first place.

share|improve this question
add comment

1 Answer 1

up vote 0 down vote accepted

A "patch that introduces kNN search for cubes with euclidean, taxicab and chebyshev distances" was recently offered on the pgsql-hackers list.

Note that the cube type, a PostgreSQL extension, can be used to represent points or cubes in n-dimensions (n up to 100 by default, more if that limit is removed), so this patch should among other things enable 3D point search.

I haven't yet used it, and note that one of the replies suggests it may currently break some regression tests. But, it seems to add the necessary <-> operator and "OPERATOR CLASS gist_cube_ops" changes for a gist index on cube distances to work.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.