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é ?

#1 Fri 30 July 2010 22:02

feraudyh
Participant actif
Date d'inscription: 13 May 2009
Messages: 103

En ce qui concerne les Polygones

Bonjour,
  Je ne sais pas si c'est le forum pour en discuter, mais dans un Polygon que l'on peut écrire avec du WKT, est ce qu'on admet
des "trous dans les trous"?
Comme exemple réel je pense à un terrain de golf, dans lequel il y a un étang, dans lequel il y a une ile.
Je ne sais pas si PostGis donne de l'information à ce sujet.

Hors ligne

 

#2 Fri 30 July 2010 23:26

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

Re: En ce qui concerne les Polygones

Bonjour,

Il n' y a pas de "trous dans les trous" mais un polygone à trous (terrain de golf sans l'étang) dans un polygone à trous (l'eau de l'étang) qui contient un polygone simple (l'île).

Un test ci-dessous appuyant ma réponse

Code:

CREATE TABLE test (
    id serial,
    the_geom geometry
);

ALTER TABLE public.test OWNER TO postgres;

INSERT INTO test (id, the_geom) VALUES (1, ST_GeomFromEWKT('SRID=27572;POLYGON((1.99882491186839 9.86016451233843,5.5475910693302 9.82491186839013,4.76028202115159 8.35605170387779,5.77085781433608 7.3807285546416,1.77555816686251 5.88836662749706,1.21151586368978 8.02702702702703,1.99882491186839 9.86016451233843,1.99882491186839 9.86016451233843),(3.15041128084606 7.14571092831962,3.15041128084606 7.14571092831962,3.15041128084606 7.14571092831962,3.15041128084606 7.14571092831962,4.37250293772033 7.78025851938895,4.20799059929495 8.99059929494712,2.68037602820211 9.13160987074031,2.36310223266745 7.94477085781434,3.15041128084606 7.14571092831962,3.15041128084606 7.14571092831962))'));
INSERT INTO test (id, the_geom) VALUES (2, ST_GeomFromEWKT('SRID=27572;POLYGON((2.68037602820211 9.13160987074031,4.20799059929495 8.99059929494712,4.37250293772033 7.78025851938895,3.15041128084606 7.14571092831962,2.36310223266745 7.94477085781434,2.68037602820211 9.13160987074031,2.68037602820211 9.13160987074031),(3.45593419506463 8.60282021151586,3.12690951821387 8.52056404230317,2.97414806110458 8.02702702702703,3.50293772032902 7.83901292596945,3.84371327849589 8.3090481786134,3.45593419506463 8.60282021151586,3.45593419506463 8.60282021151586,3.45593419506463 8.60282021151586,3.45593419506463 8.60282021151586,3.45593419506463 8.60282021151586))'));
INSERT INTO test (id, the_geom) VALUES (3, ST_GeomFromEWKT('SRID=27572;POLYGON((3.45593419506463 8.60282021151586,3.84371327849589 8.3090481786134,3.50293772032902 7.83901292596945,2.97414806110458 8.02702702702703,3.12690951821387 8.52056404230317,3.45593419506463 8.60282021151586,3.45593419506463 8.60282021151586))'));

ALTER TABLE ONLY test
    ADD CONSTRAINT test_pkey PRIMARY KEY (id);
ALTER TABLE test
   ADD CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2);
ALTER TABLE test
   ADD CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POLYGON'::text OR the_geom IS NULL);
ALTER TABLE communes_region
   ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 27572);

INSERT INTO geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) VALUES ('', 'public', 'test', 'the_geom', 2, 27572, 'POLYGON');

Cordialement

ThomasG

Hors ligne

 

Pied de page des forums

Powered by FluxBB