Annonce
Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).
En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.
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: 21
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: 21
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