banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 16 September 2016 00:30

bernard lortic
Participant assidu
Lieu: crest 26
Date d'inscription: 23 Jan 2006
Messages: 549
Site web

convertion de fichier

Bonjour,
je suis un peu mou du bulbe et j'ai un problème qui doit être simple :
j'ai un fichier qui contient 150 parcelles qui sont décrites par une liste de bornes (x,y). Je voudrais en faire un fichier du type .shp. Bien sur je pourrais tout retaper en format lisible par un Sig, mais je trouve cela un peu couillon. Donnez moi des idées, ou même des trucs faisables.
image du début du fichier joint

Dernière modification par bernard lortic (Fri 16 September 2016 07:56)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Fri 16 September 2016 08:27

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: convertion de fichier

Bonjour,
A votre place, je pousserais les données dans une base de données, par exemple dans spatialLite avec Qgis et je ferais une requete dans ce style:

Code:

Select ID, Nom, ST_GeomFromText( 'POLYGON((' || GROUP_CONCAT(xy) || '))' ) as geom
FROM  (SELECT ID, nom, x||' ' || y as xy
    FROM la_table
    ORDER BY id,Borne
    ) r1
GROUP BY ID,Nom

Hors ligne

 

#3 Fri 16 September 2016 21:12

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1159

Re: convertion de fichier

Pour instancier un polygone, il me semble qu'il faille que les anneaux soient fermés (sous postgresql en tout cas).
Dans ce cas on peut modifier légèrement la requête :

Code:

Select ID, Nom, ST_GeomFromText( 'POLYGON((' || GROUP_CONCAT(xy) || '))' ) as geom
FROM (
    SELECT * FROM(
        SELECT ID, nom, x||' ' || y as xy, Borne
        FROM la_table
        UNION
        SELECT l.ID, nom, x||' ' || y as xy, 'Z'
        FROM la_table l NATURAL JOIN ( SELECT ID, Min(Borne) Borne
                         FROM la_table
                         GROUP BY ID ) t
    ORDER BY ID,Borne
    ) r1
GROUP BY ID,Nom

Hors ligne

 

Pied de page des forums

Powered by FluxBB