Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenFileGDB: add support for reading .spx spatial index file #2771

Merged
merged 4 commits into from
Jul 16, 2020

Conversation

rouault
Copy link
Member

@rouault rouault commented Jul 16, 2020

Credits to QGIS.org Grant program 2020 for sponsoring this work, and to @nyalldawson for his help in the reverse engineering.

Results on a version from of few years ago of the nz-primary-parcels.gdb dataset, featuring 2 484 646 polygons, 773 MB:
"ogrinfo -spat 174.949909 -41.143842 175.684529 -40.594600 -al -so -noextent" (thus counting the number of features intersecting the spatial filter), which returns 81 046 polygons, nows runs in 400 ms with this PR and the OpenFileGDB driver, vs 6.7 s before (full scan), vs 890 ms with the FileGDB driver (with FileGDB SDK 1.5). All figures given with debug builds, and on a hot run (so with most pages cached by the OS). Interactive display of this dataset in QGIS with the OpenFileGDB driver is as fluid as with the FileGDB one. Comparing behaviour of OpenFileGDB and FileGDB drivers with strace shows that they read a similar amount of data in the .spx file.

@nyalldawson
Copy link
Collaborator

Looks good to me! Thanks @rouault!

@nyalldawson
Copy link
Collaborator

(next step: reverse engineering that compressed data format 😱)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants