Skip to content

4. Debe estar cubierto por el extremo de

Mauro Carlevaro edited this page Sep 30, 2019 · 6 revisions

Descripción de la Regla.

Imagen de la regla

  • Nombre de la regla: TopologyRuleMustBeCoveredByEndpointOfPoint

  • Repositorio: https://github.com/Maureque/TopologyRuleMustBeCoveredByEndpointOfPoint

  • Descripción: En esta regla los puntos en la capa de entrada deben estar cubiertos por los extremos de la línea (capa de cobertura), entonces, los puntos de error son los puntos que no están cubiertos por los vértices fin de la línea. Por ejemplo, esta regla es útil cuando se necesita que los cruces de calles estén cubiertos por los puntos finales de las líneas centrales de las calles.

  • Paquete de Instalación: https://github.com/Maureque/TopologyRuleMustBeCoveredByEndpointOfPoint/releases/tag/1.0.0-1

  • Proceso de desarrollo: Para minimizar los riesgos y optimizar el proceso de desarrollo se utiliza la siguiente metodología:

    • Abordarje del problema a resolver.
    • Analizar la información y las clases.
    • Diseño del algoritmo para resolver el problema.
    • Para resolver la problematica que plantea la regla se necesita que los puntos de la capa de entrada estén cubiertos por los extremos de las líneas de la otra capa. Los errorres son los puntos que no coinciden con los extremos de ninguna línea.

      En esta regla hay 2 capas, una es la capa de entrada (capa de puntos) y la otra es la capa de cobertura (capa de líneas). Los puntos de la capa de entrada se toman con una tolerancia (se establece por el usuario cuando selecciona la regla topológica), entonces, se calcula un buffer donde el radio del buffer es la tolerancia establecida. Luego se recorre la línea para obtener los puntos extremos, estos puntos de la línea deben estar contenidos en el buffer determinado inicialmente, los puntos en los límites se consideran como correctos.

      Si el tipo de geometría de la capa de entrada es multipunto el procedimiento descripto anteriormente se aplica para cada punto que integra el multipunto. El tipo de geometría de la capa de cobertura no se necesita analizar, ya que, esto lo evalúa la función intersects, la cual viene implementada por defecto en el software.

      En conclusión, si los puntos no están cubiertos por los extremos de línea se crea un reporte de errores. Este es un reporte de puntos de error, puntos que no cumplen con la regla. El reporte contiene los puntos de la capa de entrada que no están cubiertos por los extremos de línea.

    • Datos de entrada:

      • Entrada, capa de puntos.
      • Cobertura, capa de líneas.
    • Datos de salida:

      • Reporte de puntos de error.
    • Corrección de errores:

      • Acción borrar punto. Esta acción borra los puntos de error, estos puntos son los que no están cubiertos por los extremos de línea. Permite seleccionar que entidad se quiere borrar.
    • Optimizar algoritmos.
    • Codificar.
    • Testeo, depuración y refactorización.
    • Documentar todo el proceso. Esta actividad tiene continuidad durante todo el ciclo de vida del proyecto.

Ejemplos.

Funcionamiento de la regla integrada con el marco de topología.

Ejemplo 1.

Ejemplo con el conjunto de datos en la carpeta data: https://github.com/Maureque/TopologyRuleMustBeCoveredByEndpointOfPoint/tree/master/data

Plan de Topología:

Plan de Topología

Capas:

Capas

Entidades vs Errores:

Entidades vs Errores

Reporte de errores:

Reporte de errores

Reporte de errores

Reporte de errores

Reporte de errores

Reporte de errores

Ejemplo 2.

Ejemplo con las capas en la carpeta data de la regla "El punto debe estar cubierto por la línea": https://github.com/Maureque/TopologyRulePointsMustBeCoveredByLinePoint/tree/master/data

A diferencia de la capa de entrada del primer ejemplo, en la capa de entrada de este ejemplo hay puntos sobre toda la línea no solo en los extremos.

Plan de Topología:

Plan de Topología

Capas:

Capas

Puntos sobre la línea

Entidades vs Errores:

Entidades vs Errores

Reporte de errores:

Reporte de errores

You can’t perform that action at this time.