7 votos

PostGIS Disolver la Unión a cerca de los polígonos

Tengo aproximadamente 1 millón de polígonos que se han dividido por líneas. Sin embargo, esto ha provocado que la mitad de un polígono que ser separados por aproximadamente 50 cm de su otra mitad.

Después de hacer un montón de intentos, utilizando una variedad de métodos todavía no he venido para arriba con una solución fiable.

Me gustaría terminar con características individuales que han tenido el más cercano de los polígonos que se fusionaron para crear una función. Probablemente debe estar basada en la tolerancia o buffer.

1) Mediante la Unión y SnapToGrid como explica Paul Ramsey, en otra pregunta (¿Cuál es la mejor manera de unirse a un montón de pequeños polígonos para formar una mayor polígono?)

 CREATE TABLE merged AS
 SELECT ST_Union(ST_SnapToGrid(the_geom,0.0001)) 
 FROM parishes
 GROUP BY county_name;

Este hizo un gran trabajo de hacer una unión de las partes de cada polígono, sin embargo, me quedé con una sola característica. Así que mi 1 millón de polígonos y se fusionaron en una de Varias partes. Hay una manera de evitar que esto suceda?

2) El Uso De La Topología Entonces me preguntaba si yo podría ser capaz de utilizar la topología dentro de PostGIS 2.0. Me pareció muy difícil de implementar, ya que hay muy pocos ejemplos.

 -- Create a topology
SELECT CreateTopology('new_topology', 27700, 'geom'));

-- Add a layer
SELECT AddTopoGeometryColumn('new_topology', 'public', 'original_polygons', 'topogeom', 'MULTIPOLYGON');

Esto crea las aristas y caras, pero ¿cómo debo ahora utilice esta opción para crear una nueva capa de polígonos?

3) ST_Snap - parece que esto va a tomar una geometría a otra geometría. No podía conseguir que esto funcione, ya que yo estaba tratando de complemento a la misma geometría. Esto puede funcionar, aunque como he podido ajustar los puntos en uno de los lados del polígono a su juego y, a continuación, disolver.

Hay otras opciones o consejos sobre cómo conseguir lo que busco?

5voto

brad Puntos 302

Creo que se debe utilizar ST_Dump para desagregar los Multi-parte polígono creado en el paso (1):

SELECT ST_Dump( 
   ST_Union(ST_SnapToGrid(the_geom,0.0001))
   FROM parishes
   GROUP BY county_name
);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X