Pages: 1
- Sujet précédent - [PostGis] Insérer des linestring dans une table MultiLineString - Sujet suivant
#1 Thu 27 June 2013 11:11
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
[PostGis] Insérer des linestring dans une table MultiLineString
Bonjour,
J'essaie de charger des données dans une table où la géométrie est MultiLineString. En gros, ce sont des lignes que je fusionne selon un attribut commun.
Voici ma requête :
Code:
INSERT INTO matable ( code, geom) SELECT code, ST_Force_2D((ST_Dump(geom)).geom) as geom FROM (SELECT trim(code) as code, ST_LineMerge(ST_Union(geom)) as geom FROM tabletemp GROUP BY code) as A
Mais j'obtiens une erreur m'indiquant "Geometry type (LineString) does not match column type (MultiLineString)".
En effet, le résultat de ma sous-requête me donne à la fois des multilinestring et des linestring.
Comment puis-je spécifier que je veux transformer mes linestring en multi afin que tous mes enregistrements soient chargés dans ma table ?
Merci
Hors ligne
#2 Thu 27 June 2013 11:27
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1147
Re: [PostGis] Insérer des linestring dans une table MultiLineString
Salut,
la fonction ST_Multi http://www.postgis.org/docs/ST_Multi.html ne conviendrait-elle pas ?
Hors ligne
#3 Thu 27 June 2013 11:32
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: [PostGis] Insérer des linestring dans une table MultiLineString
Effectivement, je l'ai déjà testé mais je ne vois pas où placer cette commande...
Car en la mettant devant le ST_Force2D, ça annule la fusion que je fais dans la sous-requête.
Hors ligne
#4 Thu 27 June 2013 11:43
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1147
Re: [PostGis] Insérer des linestring dans une table MultiLineString
En remplacant ST_LineMerge par ST_Multi (pas sur que le ST_Dump serve alors à quelque chose) ? cf le premier example de cette page :http://postgis.refractions.net/document … Union.html
Hors ligne
#5 Thu 27 June 2013 11:54
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: [PostGis] Insérer des linestring dans une table MultiLineString
Exact, c'est bien ça.
Et il faut bien supprimer le ST_DUMP qui ne sert plus.
En gros, le ST_Dump éclate les géométries, c'est ça ?
Hors ligne
#6 Thu 27 June 2013 14:28
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1544
Re: [PostGis] Insérer des linestring dans une table MultiLineString
Oui, st_dump explose une collection de geometries en ses éléments constitutifs, indiquant, en plus de la geometrie, le rang de l'objet au sein de la collection.
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - [PostGis] Insérer des linestring dans une table MultiLineString - Sujet suivant