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

Create intersection variant that speeds up dealing with (very) large geometries #332

Open
theroggy opened this issue Aug 3, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@theroggy
Copy link
Collaborator

theroggy commented Aug 3, 2023

Optimised version can be used in several operations: intersection, split,...

Similar to the improvement implemented in erase: #329, #330

@theroggy
Copy link
Collaborator Author

theroggy commented Aug 9, 2023

After some more looking into this, using the same approach as used in erase doesn't seem possible.

For erase/difference, the first input layer is conceptually looped row per row and for each row and typically many small (or large) geometries need to be subtracted from each element it in one operation, especially for large geometries. In this case there is a "hook" in the sql statement to tile the large geometry once for each row which than speeds up the many subtracts that need to be done.

For intersection this is slightly different: the inner join leads to the intersection having to be calculated individually between each row of the first layer and the 2nd layer... so there is no obvious central point to tile large geometries once to be able to speedup the many subsequent intersections.

Maybe it is possible virtually creating this using a WITH table first or something like that... to be tested.

To be continued.

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

No branches or pull requests

1 participant