Bonjour,
j'importe des données de la GéoRoute de l'IGN en utilisant la fonction ogr2ogr :
"ogr2ogr -update -append -f "PostgreSQL" "PG:dbname=test user=[nom d'utilisateur] password=[mdp]" TRONCON_ROUTE.MIF -lco GEOMETRY_NAME=the_geom"
Ensuite, je corrige tout les accents et je transforme la colonne "ogc_fid" en "gid". Mais je n'arrive pas à visualiser les données dans QGis mais j'y arrive dans GVSig. Puis j'essaie d'appliquer les fonctions de la librairie Dijkstra pour créer des itinéraires. En fait je veux créer un graphe avec la fonction assign_vertex_id mais là il n'arrive pas à mettre à jour la table...
Pouvez-vous m'aider, mon erreur provient peut-être d'une mauvaise utilisation de l'exécutable ogr2ogr ou bien dans la librairie Dijkstra.
Je vous remercie d'avance
Benjamin
n.b. : voici la fonction en question :
CREATE OR REPLACE FUNCTION assign_vertex_id(geom_table "varchar", tolerance float8)
RETURNS void AS
$BODY$
DECLARE
points record;
source_id int;
target_id int;
BEGIN
BEGIN
DROP TABLE vertices_tmp;
EXCEPTION
WHEN UNDEFINED_TABLE THEN
END;
CREATE TABLE vertices_tmp ( id serial );
EXECUTE $q$ SELECT addGeometryColumn('vertices_tmp', 'the_geom',
-1, 'POINT', 2) $q$;
CREATE INDEX vertices_tmp_idx ON vertices_tmp USING GIST (the_geom);
FOR points IN EXECUTE 'SELECT gid AS id, startPoint(geometryN(the_geom , 1)) AS source, endPoint(geometryN(the_geom, 1)) as target FROM '
|| quote_ident(geom_table) loop
source_id := point_to_id(points.source, tolerance);
target_id := point_to_id(points.target, tolerance);
EXECUTE 'update ' || quote_ident(geom_table) ||
' SET source_id = ' || source_id ||
', target_id = ' || target_id ||
' WHERE gid = ' || points.id;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE STRICT;
ALTER FUNCTION assign_vertex_id(geom_table "varchar", tolerance float8) OWNER TO PostGre;
et le message d'erreur :ERROR: cannot EXECUTE a null querystring
CONTEXTE : PL/pgSQL function "assign_vertex_id" line 26 at execute statement