[PostGIS] #6143: [topology] False edge crossing detected

PostGIS trac at osgeo.org
Fri Oct 9 00:40:37 PDT 2026


#6143: [topology] False edge crossing detected
-----------------------+---------------------------
  Reporter:  strk      |      Owner:  strk
      Type:  defect    |     Status:  new
  Priority:  blocker   |  Milestone:  PostGIS 3.7.0
 Component:  topology  |    Version:  master
Resolution:            |   Keywords:
-----------------------+---------------------------
Description changed by strk:

Old description:

> The new lwline_have_nonboundary_2d_intersection function committed in
> d03570c8597d49e4ca382283b3385c22f52a5b7a returns true with this input:
>
> L1: LINESTRING(-1000000000000 -1000000000000, -1 0.0001)
> L2: LINESTRING(100000 -10000, -1 -0.00000000001)
>
> It can be checked like this:
> > select
> topology.TopoEdgesHaveInteriorIntersection('LINESTRING(-1000000000000
> -1000000000000, -1 0.0001)'::geometry, 'LINESTRING(100000 -10000, -1
> -0.00000000001)'::geometry);
>
> But GEOS Finds them non crossing:
> > select ST_IsSimple(ST_Collect('LINESTRING(-1000000000000
> -1000000000000, -1 0.0001)'::geometry, 'LINESTRING(100000 -10000, -1
> -0.00000000001)'::geometry));
>
> and ST_Distance reports them being 0.00010000001 units apart.

New description:

 The new lwline_have_nonboundary_2d_intersection function committed in
 d03570c8597d49e4ca382283b3385c22f52a5b7a returns true with this input:

 {{{
 L1: LINESTRING(-1000000000000 -1000000000000, -1 0.0001)
 L2: LINESTRING(100000 -10000, -1 -0.00000000001)
 }}}

 It can be checked like this:
 {{{
 select
 topology.TopoEdgesHaveInteriorIntersection('LINESTRING(-1000000000000
 -1000000000000, -1 0.0001)'::geometry, 'LINESTRING(100000 -10000, -1
 -0.00000000001)'::geometry);
 }}}

 But GEOS Finds them non crossing:
 {{{
 select ST_IsSimple(ST_Collect('LINESTRING(-1000000000000 -1000000000000,
 -1 0.0001)'::geometry, 'LINESTRING(100000 -10000, -1
 -0.00000000001)'::geometry));
 }}}

 and ST_Distance reports them being 0.00010000001 units apart.

--
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/6143#comment:2>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list