[postgis-devel] Faster ST_Intersection
Paul Ramsey
pramsey at cleverelephant.ca
Tue Oct 23 10:04:36 PDT 2018
The first GIS system I ever used had an “intersection area” function that was distinct from, and faster than, the full-on “intersection” function that output a new geometry. I wonder if there is some possibility there…
P
> On Oct 23, 2018, at 6:01 PM, Darafei Komяpa Praliaskouski <me at komzpa.net> wrote:
>
> Hi,
>
> I have two polygonal layers to intersect and need to measure area of intersections.
>
> ST_Area(ST_Intersection(a.geom, b.geom)) works fine, but is rather slow. Typical polygon on first side has <10 edges, on second 200..1000 edges.
>
> What are my options to make it faster? Any ideas, links, experiences to share are welcome.
>
> For starters, this seems to work faster than vanilla ST_Intersection in my case:
> create or replace function clipped_st_intersection(geom1 geometry, geom2 geometry)
> returns geometry
> as $$select ST_Intersection(
> case
> when ST_MemSize(geom1) > 160 then ST_ClipByBox2D(geom1, geom2)
> else geom1 end, case
> when ST_MemSize(geom2) > 160 then ST_ClipByBox2D(geom2, geom1)
> else geom2 end)$$
> language sql
> immutable
> strict
> parallel safe;
> --
> Darafei Praliaskouski
> Support me: http://patreon.com/komzpa <http://patreon.com/komzpa>_______________________________________________
> postgis-devel mailing list
> postgis-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20181023/684d6e61/attachment.html>
More information about the postgis-devel
mailing list