6 votos

Cuál es la forma eficiente para disolver polígonos con Spatialite 3.0

He polígono tabla denominada "tabla" con 72000 registros. Tiene una geometría de la columna denominada "geometría", y una columna de texto llamado "campo1". Quiero agregar\disolver todos los polígonos con el mismo "campo1" valor.

Tengo un Índice Espacial en la Geometría y un índice en el campo1.

He intentado esto:

Select f.field1 as field1, st_union(f.geometry) as geometry
From tableA as f
Group by field1;

y su toma demasiado tiempo, tuve que cancelar después de ser procesado para 1 hora. El uso de Arcgis que toke me 5 minutos, así que debo estar haciendo algo mal.

Así que, ¿hay una mejor manera para realizar esta operación con spatialite? Es el Índice Espacial de utilizar de este modo?

9voto

sashkello Puntos 325

Después de preguntar en varios foros y lista de correo, he encontrado mi respuesta en el Spatialite dedicado grupo de google, como el publicado por @BradHards.

De hecho St_Union no está funcionando como se esperaba como sandro furieri han probado y explicado aquí.

Y esta es la belleza de código Abierto, el problema ya está bien cuidado, y estará disponible en Spatialite 4.0.0.

Así que mientras se espera Spatialite 4.0.0 la solución es:

Select f.field1 as field1, st_unaryunion(st_collect(f.geometry)) as geometry
From tableA as f
Group by field1;

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