Pages: 1
- Sujet précédent - function st_collect(geometry, geometry, geometry) does not exist - Sujet suivant
#1 Sun 09 December 2018 15:52
- Benji12
- Participant occasionnel
- Date d'inscription: 5 Apr 2018
- Messages: 23
function st_collect(geometry, geometry, geometry) does not exist
J'ai un petit souci avec cette méthode :
Je voudrais faire un merge avec des linestrings :
Code:
SELECT ST_AsText(ST_LineMerge(ST_Collect( ST_GeomFromText('LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33)'), (tr.path), ST_GeomFromText('LINESTRING(-45 -33,-46 -32, -45 -34)') ))) from tracks tr where id = 12
Elle me retourne : function st_collect(geometry, geometry, geometry) does not exist.
tr.path est une linestring au format geom. et d'après la doc, ST_Collect attend bien des géometries.
Je pense qu'il faut caster les données, mais tout ce que j'ai tenté ne fonctionne pas...
Hors ligne
#2 Mon 10 December 2018 08:40
- Alban NOIR
- Participant occasionnel
- Date d'inscription: 7 Sep 2005
- Messages: 32
Re: function st_collect(geometry, geometry, geometry) does not exist
Bonjour,
La fonction st_collect prends comme arguments deux geometries une à une ou un tableau de geometries.
Dans ta requête tu en passes 3.
tu peux :
Code:
SELECT ST_AsText(ST_LineMerge( ST_Collect( ST_Collect( ST_GeomFromText('LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33)'), tr.path, ), ST_GeomFromText('LINESTRING(-45 -33,-46 -32, -45 -34)') ) )) from tracks tr where id = 12;
ou avec un tableau
Code:
SELECT ST_AsText(ST_LineMerge( ST_Collect( ARRAY( SELECT ST_GeomFromText('LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33)') UNION ALL SELECT tr.path from tracks tr where id = 12 UNION ALL SELECT ST_GeomFromText('LINESTRING(-45 -33,-46 -32, -45 -34)') ) ) )) ;
Alban
Hors ligne
#3 Mon 10 December 2018 17:55
- Benji12
- Participant occasionnel
- Date d'inscription: 5 Apr 2018
- Messages: 23
Re: function st_collect(geometry, geometry, geometry) does not exist
Merci bien, j'ai testé les deux method :
La première me retourne une multilinestring la deuxième une linestring (ce que j'attendais). J'ai donc opté pour celle là
Un grand merci
Hors ligne
Pages: 1
- Sujet précédent - function st_collect(geometry, geometry, geometry) does not exist - Sujet suivant