4 votos

Vértices no válidos en QGIS

¿Puede alguien explicar la topología de QGIS teniendo en cuenta los vértices compartidos del tipo representado en mi pantalla?

El polígono de la imagen es la misma característica, con un nodo compartido exactamente en la misma posición, sin superposición, lo que lleva a una intersección de los segmentos de línea.

Supongo que se supone que esto es una geometría no válida, sin embargo creo que no debería.

¿Cómo evitar esto, si quiero mantener la posición de ambos vértices?

enter image description here

ps: WKT (perdón por lo largo..) https://drive.google.com/open?id=0B2wAunwURQNsc1J4bS15WVBNSmM

2 votos

Toma el WKT de tu polígono y pégalo en tu pregunta.

0 votos

@user30184, he enlazado un archivo txt (perdón por lo largo..)

0 votos

Preste mucha atención a las reglas de topología para las características de área. Tienes un multipolígono, no un polígono.

5voto

Joe Puntos 16

Tiene auto-intersección de anillo en PUNTO ( 70349.5 248978.25009999983).

enter image description here

Este polígono tiene un error similar

POLÍGONO (( 70380 248880, 70380 248920, 70440 248920, 70440 248880, 70400 248880, 70420 248900, 70400 248900, 70400 248880, 70380 248880))

Debe escribirse como un polígono con un agujero

POLÍGONO (( 70380 248920, 70440 248920, 70440 248880, 70400 248880, 70380 248880, 70380 248920 ), ( 70400 248880, 70420 248900, 70400 248900, 70400 248880 ))

Sin embargo, algunos programas informáticos no están de acuerdo con esta interpretación. Creo que, por ejemplo, Oracle acepta que el anillo exterior se toque a sí mismo en un punto. Sin embargo, PostGIS lo considera como inválido y esta consulta devuelve "false"

SELECT ST_IsValid(
ST_GeomFromText('POLYGON (( 70380 248880, 70380 248920, 70440 248920, 70440 248880, 70400 248880, 70420 248900, 70400 248900, 70400 248880, 70380 248880))'));

Mirando su geometría, la forma limpia de corregirlo es probablemente digitalizar un pasillo estrecho donde el anillo se toca a sí mismo.

0 votos

No, el camino del "pasillo estrecho" lleva a la locura. Es un multipolígono, y el WKT debería reflejarlo.

0 votos

No creo que sea un multipolígono. Si la característica era una isla en un mar, hay un golfo profundo donde se produce el error. Si debe estar conectado a mar abierto debe tener una conexión a través de un corredor, de lo contrario la parte más interna se puede convertir en un agujero. He probado con MakeValid pero desgraciadamente elimina totalmente la parte más interna del golfo.

0 votos

¡Gracias @user30184, el polígono WKT que proporcionó demuestra exactamente lo que quería decir - (OP: " polígono es una característica") Así que es un anillo! También he encontrado una solución QGIS/gdal que voy a publicar como respuesta..

2voto

NVI Puntos 358
ogr2ogr input.shp output.shp -dialect sqlite -sql "SELECT ST_Buffer( geometry , 0 ),* FROM 'input'"

...fijará la topología (ver ¿Cómo identificar y eliminar los vértices duplicados? ¡)! ¡Esto se puede hacer dentro de los "vectores del buffer" de QGIS [OGR] Geoprocesamiento!

He comprobado la geometría resultante con el comprobador de topología: ¡está bien formada! Gracias a @user30184 por resolver el problema.

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