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 = 12Elle 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


