Description
A lot of packages use "prepared geometries", where points and edges are preprocessed in some way and stored, to reduce processing times for various algorithms.
GeoInterface wrappers kind of already have this with embedded extents. It could be more useful if we had a wrapper class like:
AbstractPreparedGeometry{NumType, CacheTypes, Z, M}
where CacheTypes
is a Union of all the cache types the geometry holds in a named tuple, like STRTree
or MonotoneChain
, etc. Algorithms would also probably have to opt in or out of handling these, and we would need a prepare
interface to generate and load such preparations.
maxfreu/STRTrees.jl already exists and works well, so that would be a good starting point!
The algorithm support might be more of an effort, but creating such geometries with cache is low hanging fruit, and ought to be fairly easy to implement.