<div dir="ltr"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote">The other place in the overlay algorithm where point-in-polygon is used is during the polygon-extraction phase [1].  This is to assign the holes in the overlay result to their parent shell.  In this particular test case it might be time-consuming, since all 4262 holes are tested against the original 130,327 vertex parent ring, using a linear scan.  This could be improved by using an index. It will need a new class or a new entry point to IndexedPointInAreaLocator however, since that class currently only accepts Geometry inputs as the target.</div></blockquote><div><br></div><div>@Paul - do you think this is another hotspot? </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"> </div></blockquote><div><br></div><div>[1] <a href="https://github.com/libgeos/geos/blob/8bc1ea0f8019bcb83c60126e7883ae428ea7c677/src/operation/overlay/PolygonBuilder.cpp#L352">https://github.com/libgeos/geos/blob/8bc1ea0f8019bcb83c60126e7883ae428ea7c677/src/operation/overlay/PolygonBuilder.cpp#L352</a> </div></div></div></div>