Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Excluir la geometría basada en el búfer de la geometría más grande

Tengo una geometría multipolígono en la que la geometría del polígono está dispersa. Quiero excluir la geometría que no forma parte de la gran geometría. Por ejemplo, la imagen de abajo es una región con uno de los polígonos demasiado lejos. Quiero excluir ese polígono basado en el búfer. ¿Qué función podría usarse para hacerlo?

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tienes que ST_Dump el MultiPolygon e iterar sobre el conjunto de resultados para filtrar los polígonos que no se cruzan con una geometría dada, por ejemplo

 SELECT * FROM (SELECT (ST_Dump(geom)).* FROM mytable) t WHERE ST_Contains('YOUR BUFFER GOES HERE',t.geom);

Demostración: db<>fiddle

 CREATE TABLE t (gid int, geom geometry(multipolygon,4326)); INSERT INTO t VALUES (1,'SRID=4326;MULTIPOLYGON(((30 20,45 40,10 40,30 20)),((15 5,40 10,10 20,5 10,15 5)),((-24.78 25.47,-19.14 22.38,-26.35 19.86,-24.78 25.47)))'::geometry);

ingrese la descripción de la imagen aquí

  • El BBOX grande alrededor de los dos polígonos más grandes representa su búfer y no es parte del MultiPolygon . Lo puse en la imagen solo con fines ilustrativos.

La siguiente consulta descarga el MultiPolygon , verifica si cada Polygon se cruza con el polígono/búfer dado y crea un nuevo MultiPolygon o un Polygon , en caso de que solo quede una geometría:

 SELECT gid, ST_AsText(ST_Union(geom)) FROM (SELECT gid,(ST_Dump(geom)).* FROM t) j WHERE ST_Contains('SRID=4326;POLYGON((0 44.58,52.38 45.02,52.99 2.46,1.23 0,0 44.58))',j.geom) GROUP BY gid; gid | st_astext -----+-------------------------------------------------------------------------- 1 | MULTIPOLYGON(((15 5,5 10,10 20,40 10,15 5)),((30 20,10 40,45 40,30 20))) (1 Zeile)

ingrese la descripción de la imagen aquí

Otras lecturas:

  • ST_Union
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda