Ticket #975 (closed defect: invalid)

Opened 2 years ago

Last modified 2 years ago

ST_AddEdgeNewFaces - wrong assigned face to nodes

Reported by: aperi2007 Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: topology Version: trunk
Keywords: Cc:

Description

Following the trace of ticket

http://trac.osgeo.org/postgis/ticket/972

I found the ST_AddEdgeNewFaces assign a wrong value to the nodes. Actually it do this code:

  -- NOT IN THE SPECS...
  -- set containing_face = null for start_node and end_node
  -- if they where isolated 
  IF span.was_isolated OR epan.was_isolated THEN
      EXECUTE 'UPDATE ' || quote_ident(atopology)
        || '.node SET containing_face = null WHERE node_id IN ('
        || anode || ',' || anothernode || ')';
  END IF;

Assigning a NULL value to isolated nodes.

I guess accordig to ISO specs. It should not assign NULL if a node is isolated because an isolated node still can be into a face.

Instead it should do this test:

-- if adding this edge will born some new face or split other faces. It should be search for all nodes inside these faces and reassing the containing_value. --

I guess no change to node should be do if don't born or split a face.

Change History

Changed 2 years ago by aperi2007

  • owner changed from pramsey to strk
  • version changed from 1.5.X to trunk
  • component changed from postgis to topology

Changed 2 years ago by aperi2007

  • status changed from new to closed
  • resolution set to invalid

I read better the ISO specs. The original action: setting NULL the containing_face of the nodes connected from an ST_AddEdgeNewFaces is corrected.

sorry for noise.

Note: See TracTickets for help on using tickets.