Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ddd:geom [2016/09/29 17:11] thomas.milon@fcbn.fr [Import de données en WKT] |
ddd:geom [2022/03/07 12:00] (Version actuelle) |
||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
Le champ geom est une géométrie Postgis. C'est un type de champ particulier qui ne fonctionne pas spécifiquement avec un XY car il a implicitement un système de coordonnée (ou géodésique tout du moins) et un format spécifique. | Le champ geom est une géométrie Postgis. C'est un type de champ particulier qui ne fonctionne pas spécifiquement avec un XY car il a implicitement un système de coordonnée (ou géodésique tout du moins) et un format spécifique. | ||
- | ==== Import de XY ==== | + | Retrouvez ici [[:import_donnees_geo_postgres|comment |
- | Il est possible de renseigner ce champ à partir de point X et Y et d'un système de projection.Pour se faire, les éléments suivants peuvent être réalisés | + | |
- | + | ||
- | 1. Construire une table temporaire pour y importer | + | |
- | < | + | |
- | CREATE TABLE public.releve_xy | + | |
- | ( | + | |
- | cd_jdd character varying NOT NULL, | + | |
- | cd_releve character varying NOT NULL, | + | |
- | cd_releve_perm character varying, | + | |
- | coor_x | + | |
- | coor_y float NOT NULL, | + | |
- | geom geometry, | + | |
- | cd_obj_geo character varying, | + | |
- | CONSTRAINT releve_localisation_pkey PRIMARY KEY (cd_jdd, cd_releve), | + | |
- | CONSTRAINT geom_srid CHECK (st_srid(geom) = 2154) | + | |
- | ); | + | |
- | </ | + | |
- | + | ||
- | 2. Importer les relevé et XY dans cette table : | + | |
- | < | + | |
- | COPY public.releve_xy FROM ' | + | |
- | --- Remplacer C:/.... par lchemin vers le fichier; | + | |
- | --- Attention aux option à la fin de cette ligne (HEADER = un en-tête est présente par exemple) | + | |
- | </ | + | |
- | ATTENTION : les X et Y ne doivent pas utiliser de virgule (,) mais des points (.) en tant que séparateur | + | |
- | + | ||
- | 3. la fonction ST_MakePoint va construire la géométrie et la fonction ST_SetSRID va définir le système de projection (2154 pour RGF93) : | + | |
- | < | + | |
- | UPDATE public.releve_xy SET geom = ST_SetSRID(ST_MakePoint(coor_x, | + | |
- | </ | + | |
- | + | ||
- | 4. Tu peux ensuite renseigner la table localisation à partir de cette table : | + | |
- | < | + | |
- | INSERT INTO libSchema.releve_localisation SELECT cd_jdd, cd_releve, cd_releve_perm, | + | |
- | --- Remplacer libSchema par le nom de votre schema | + | |
- | </ | + | |
- | + | ||
- | ==== Import de données en WKT ==== | + | |
- | Il est possible de renseigner ce champ à partir de données au format WKT (Well-known text - par exemple : POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))) et d'un système de projection. Pour se faire, les éléments suivants peuvent être réalisés : | + | |
- | + | ||
- | 1. Construire une table temporaire (attention au srid) | + | |
- | < | + | |
- | CREATE TABLE public.releve_wkt | + | |
- | ( | + | |
- | cd_jdd character varying NOT NULL, | + | |
- | cd_releve character varying NOT NULL, | + | |
- | cd_releve_perm character varying, | + | |
- | coor_wkt | + | |
- | geom geometry, | + | |
- | cd_obj_geo character varying, | + | |
- | CONSTRAINT releve_wkt_pkey PRIMARY KEY (cd_jdd, cd_releve), | + | |
- | CONSTRAINT geom_srid CHECK (st_srid(geom) = **3948**) | + | |
- | ); | + | |
- | </ | + | |
- | + | ||
- | 2. Importer les données dans cette table : | + | |
- | < | + | |
- | COPY public.releve_wkt FROM ' | + | |
- | --- Remplacer C:/.... par le chemin vers le fichier; | + | |
- | --- Attention aux option à la fin de cette ligne (HEADER = un en-tête est présente par exemple) | + | |
- | </ | + | |
- | ATTENTION : les X et Y ne doivent pas utiliser de virgule (,) mais des points (.) en tant que séparateur | + | |
- | + | ||
- | 3. la fonction ST_GeomFromText va construire la géométrie (attention au srid): | + | |
- | < | + | |
- | UPDATE public.releve_xy SET geom = ST_GeomFromText(coor_wkt, | + | |
- | </ | + | |
- | + | ||
- | 4. Tu peux ensuite renseigner la table localisation à partir de cette table : | + | |
- | < | + | |
- | INSERT INTO libSchema.releve_localisation SELECT cd_jdd, cd_releve, cd_releve_perm, | + | |
- | --- Remplacer libSchema par le nom de votre schema | + | |
- | </ | + | |
- | + |