pggeodb.nancy.inra.fr/db_robot - db_robot on pggeodb.nancy.inra.fr
Previous topic Chapter index Next topic

Function: getnodeedges

 

 

Schema

topology

 

Owner

albenard

 

Descriptions

args: atopology, anode - Returns an ordered set of edges incident to the given node.

 

Options

Option

Value

Returns

Set of topology.getfaceedges_returntype

Language

plpgsql

Parameters

atopology varchar

anode integer

 

Definition

CREATE OR REPLACE FUNCTION topology.getnodeedges (
 atopology varchar,
 anode integer
)
RETURNS SETOF topology.getfaceedges_returntype AS
$span$
DECLARE

 curedge int;
 nextedge int;
 rec RECORD;
 retrec topology.GetFaceEdges_ReturnType;
 n int;
 sql text;
BEGIN

 n := 0;
 sql :=
   'WITH incident_edges AS ( SELECT edge_id, start_node, end_node, ST_RemoveRepeatedPoints(geom) as geom FROM '
   || quote_ident(atopology)
   || '.edge_data WHERE start_node = ' || anode
   || ' or end_node = ' || anode
   || ') SELECT edge_id, ST_Azimuth(ST_StartPoint(geom), ST_PointN(geom, 2)) as az FROM  incident_edges WHERE start_node = ' || anode
   || ' UNION ALL SELECT -edge_id, ST_Azimuth(ST_EndPoint(geom), ST_PointN(geom, ST_NumPoints(geom)-1)) FROM incident_edges WHERE end_node = ' || anode
   || ' ORDER BY az';

 FOR rec IN EXECUTE sql
 LOOP -- incident edges {

   n := n + 1;
   retrec.sequence := n;
   retrec.edge := rec.edge_id;
   RETURN NEXT retrec;
 END LOOP; -- incident edges }

END
$span$
LANGUAGE
'plpgsql'
STABLE
CALLED ON NULL INPUT
SECURITY INVOKER
COST
100 ROWS 1000;

COMMENT ON FUNCTION topology.getnodeedges(atopology varchar, anode integer)
IS 'args: atopology, anode - Returns an ordered set of edges incident to the given node.';

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 26/02/2014 11:51
Previous topic Chapter index Next topic