I'm curious how did you compare the libraries?
What was the test case?Many tests for Points within only one Polygon?
If yes, then have you tried to first calculate the bounding box of a
Polygon and use it for the first check to eliminate this difference between
libraries?
Are the benchmarks available somewhere?Adam -The situation: I have multiple polygons that don't change, and I am querying to which one of those polygons contains various points. The program works by first creating an rtree containing all the polygons (using the packing method) and when a range of polygons is returned covered_by() is called to check if the point is indeed in the polygon (no reason to check the bounding box in this case since that is what the rtree is for). The fact that this program ran slower than the JTS version prompted me to narrow down the cause. From running the covered_by query of boost side by side with JTS's (different name in JTS) I found that JTS had a far better performance when the PreparedPolygon class was used. Looking further into that it seems that JTS's prepared polygon does something where it creates a data structure called an edge graph to reduce the computation of intersections to log(n). I don't think boost has anyway to do this, unfortunately I can't post any of my code or the geometries I'm using, hopefully this explanation helps enough.