[postgis-users] polygons inside polygon

Jorge Gustavo Rocha jgr at di.uminho.pt
Tue Nov 30 03:44:09 PST 2021


Hi Paul,

Maybe you can try to apply a ST_ConvexHull. The resulting geometry 
ST_touches the most outer polygon. Can you try that or this not make sense?

Regards,

Jorge

On 30/11/21 10:42, paul.malm at lfv.se wrote:
> Thank you Marcin!
> 
> I’m not sure if I understand you correct. Here is what I tried to do to 
> get the outer most polygons:
> 
> Select * from "org" Where "fid" IN(
> 
> select distinct on (t1.fid) t1.fid
> 
> from "org" t1,"org" t2
> 
> where ST_Area(t1.the_geom)>ST_Area(t2.the_geom)
> 
> and ST_intersects(t1.the_geom,t2.the_geom)
> 
> order by t1.fid,ST_Area(t2.the_geom) desc)
> 
> AND "fid" NOT IN (
> 
> select distinct on (t1.fid) t2.fid
> 
> from "org" t1,"org" t2
> 
> where ST_Area(t1.the_geom)>ST_Area(t2.the_geom)
> 
> and ST_Intersects(t1.the_geom,t2.the_geom)
> 
> order by t1.fid,ST_Area(t2.the_geom) desc);
> 
> I’m still getting polygons inside other polygons.
> 
> Kind regards,
> 
> Paul
> 
> *Från:*postgis-users <postgis-users-bounces at lists.osgeo.org> *För 
> *Marcin Mionskowski
> *Skickat:* den 30 november 2021 08:40
> *Till:* PostGIS Users Discussion <postgis-users at lists.osgeo.org>
> *Ämne:* Re: [postgis-users] polygons inside polygon
> 
> *Klicka bara på länkar och öppna bilagor om du litar på avsändaren och 
> vet att innehållet är säkert.*
> 
> Assuming (1) your problem is not trivial (you have more then one "outer 
> most" polygon) and (2) there can be only one type of spatial 
> relationship (polygons are properly contained 
> https://postgis.net/docs/ST_ContainsProperly.html 
> <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=E3fbWP_UxOp_aLqY_yLoWpoHnd9en_osfYJj-MVUi5KueBYHM1BjtHCJY7dzm-LB011qRSoveVUqU8Wbo-SQYSOYr9IMVYP063lEVQCr3G9ErfMMDLx0JWLLcyDsdbz4OsKdCpzFuBZU-g6Zf2gdwauTuWm-WmCCd-yXe9BTojKOCWOHXliBKmmUzJm2IMYt21G3fa06qgsJNMVB57og9hfef8SNtdDMCfyM41WFZcL6sAWT7ulje7X4_yE-ywIBR2t6-OHWw7iVq5THHQ_FPz6JAbbD-P0i4FQ6Ze6X30U>) 
> below is my take on this:
> 
> select distinct on (t1.id 
> <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=9KJuH3f7Mex6ks3lu5cPQvny5O6XFhyh-eH6svguvEFAWIQVxt2r_IF0pHeMBwTmQ0XE2xxmCMWnaDbfaMp5XAI5b_Dcd0CClUb5RGp_7jG34xScneDpX0vYGQ4vngdzDwWvGm-5Vrd9D1J_a38Rof5Lup9vwpMo_mGHYNGYu4f1wTbn36eA3P8CNM6_0ioVin4dzKvW5LcIMv9Lun1VjfK4qpwRVaVWuelYCEa3WiGmNGu1zEEv9fA7t7zcNFT0>) 
> t1.id 
> <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=9KJuH3f7Mex6ks3lu5cPQvny5O6XFhyh-eH6svguvEFAWIQVxt2r_IF0pHeMBwTmQ0XE2xxmCMWnaDbfaMp5XAI5b_Dcd0CClUb5RGp_7jG34xScneDpX0vYGQ4vngdzDwWvGm-5Vrd9D1J_a38Rof5Lup9vwpMo_mGHYNGYu4f1wTbn36eA3P8CNM6_0ioVin4dzKvW5LcIMv9Lun1VjfK4qpwRVaVWuelYCEa3WiGmNGu1zEEv9fA7t7zcNFT0>,t2.id 
> <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=MB1btGDh1LRWWz9_qH-7fMRyiv5SylMmhNclzuXCnly7_WjBFSzNNi8uoxskAeJ4w4vgf__otNnIlUBwzIcTXhXbUpsTFsuilzyfmYd9zwlz05eB_sxpFqejtXwlOFEeYlEQLMRezJUhez4-Az3YSqWptDxKMQo3xICyLgQ_J7X-Y60pOXOjXiF2bxqaDL7qbXenH7LOd0rsTK8ovDtTM0OQ4EBcMuXDxIvRB7k1Wb5YS5ejXpy-7iOFHBuUUIEB>
> from t t1,t t2
> where ST_Area(t1.geom)>ST_Area(t2.geom)
> and ST_Intersects(t1.geom,t2.geom)
> order by t1.id 
> <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=9KJuH3f7Mex6ks3lu5cPQvny5O6XFhyh-eH6svguvEFAWIQVxt2r_IF0pHeMBwTmQ0XE2xxmCMWnaDbfaMp5XAI5b_Dcd0CClUb5RGp_7jG34xScneDpX0vYGQ4vngdzDwWvGm-5Vrd9D1J_a38Rof5Lup9vwpMo_mGHYNGYu4f1wTbn36eA3P8CNM6_0ioVin4dzKvW5LcIMv9Lun1VjfK4qpwRVaVWuelYCEa3WiGmNGu1zEEv9fA7t7zcNFT0>,ST_Area(t2.geom) 
> desc;
> 
> Enclose this in CTE and then just select "outer" polygons based on left 
> column and "inner" based on right column.
> 
> wt., 30 lis 2021 o 07:30 <paul.malm at lfv.se <mailto:paul.malm at lfv.se>> 
> napisał(a):
> 
>     Hi,
> 
>     I have a polygon layer where polygons are inside other polygons
>     (could be polygons in polygons in polygons…).
> 
>     I would like to separate them in 2 different layers, one layer with
>     the outer most polygon and one layer with all polygons that has a
>     surrounding polygon.
> 
>     Is there a smart way to do this in SQL?
> 
>     Thanks,
> 
>     Paul
> 
>     1_LFV_svensk_96
> 
>     Paul Malm
> 
>        Operations / AIM Flyginfo SE
> 
>     	
> 
>        Direkt  08-797 70 23  Mobil 070-860 11 15
>     paul.malm at lfv.se <mailto:paul.malm at lfv.se>
> 
>         Besöks- och postadress
>         LFV Flyginfo SE
> 
>         Af Pontins väg 6
> 
>         115 21 STOCKHOLM
> 
>     	
> 
>     	
> 
>         Tänk på miljön innan du skriver ut detta e-postmeddelande.
> 
>     	
> 
>     _______________________________________________
>     postgis-users mailing list
>     postgis-users at lists.osgeo.org <mailto:postgis-users at lists.osgeo.org>
>     https://lists.osgeo.org/mailman/listinfo/postgis-users
>     <https://url11b.mailanyone.net/v1/?m=1mrxkX-0008NY-3a&i=57e1b682&c=_uxAORlsjsjbGN7PYxaRnlHKfS3HxcXJKlgGb8oZkkQQ7KeYaBvj63dVA9iAwHJFsiNVtticrWS07KEdiJM7B5FK1Yaq43by7MzodRIkmRm9i5TYx5AMTzK7gTO_Qito-2qIlo3A7Ie0mipOiHVt2vWc3OvcW4JCOK1neLV9mQTj4o8JyaGnGIG3M_sLpXMopSV6-fN3Qc5DR2cPPfCZ4ySDLNEacKWQP5buUcMtkzhGviuZh24fRX4mSjaR9t7d9eZEeB6bPE0YFX2AgKUEY2w9g5s3z41MQ6FNL6ZvrJU>
> 
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
> 

J. Gustavo
-- 
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Gabinete 3.29 (Piso 3)
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor


More information about the postgis-users mailing list