#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
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