El proceso de edición cartográfica, para la digitalización de nuevos datos o la modificación de los datos ya existentes, es fuente frecuente de inconsistencias topológicas como son duplicados, huecos entre polígonos (gaps), nodos colgantes, pérdida de conectividad entre tramos de redes, etc.
Durante este proceso de edición, en ocasiones será conveniente considerar las geometrías de una capa como carentes de topología (y por tanto susceptibles de ser modificadas de forma aislada e independiente, como en los programas de CAD tradicionales) y en ocasiones será conveniente considerar si forman parte de una topología, y por tanto mantienen relaciones espaciales con las geometrías de su vecindad (ya sean de la misma capa o de capas diferentes).
Para evitar que durante el proceso de edición cartográfica se introduzcan errores topológicos como resultado de no considerar las relaciones de "geometría compartida" existentes entre las geometrías de una o varias capas, la extensión de topología y análisis vectorial avanzado de gvSIG incorpora una herramienta de edición topológica. Además, se proporcionan herramientas de edición que se han venido demandando fuertemente en los foros de usuarios de gvSIG:
En los siguientes apartados describimos cómo usar las herramientas de edición topológica y edición avanzada incorporadas en la extensión de Topología de gvSIG.
Esta herramienta permite desplazar un vértice de la geometría seleccionada en una capa de una topología, asegurándose que todas aquellas geometrías del resto de capas de la topología que compartan dicho vértice (o que tengan segmentos que lo contengan) lo desplacen también de forma solidaria.
Para poder utilizar esta herramienta, debe estar cargada una topología en el TOC de la vista, y debe ponerse en modo edición alguna de sus capas. De lo contrario, ni siquiera se mostrará el botón de edición topológica en la barra de herramientas.
Para entender mejor la diferencia entre la herramienta "Edición Topológica" y la herramienta "Desplazar vértice" de la extensión de CAD de gvSIG, veamos el ejemplo de la figura siguiente. Tenemos dos polígonos, de una misma capa, que comparten un vértice (el número 12).
Si seleccionamos uno de los dos polígonos con la herramienta "Seleccionar", y a continuación desplazamos el vértice común (simplemente hay que pulsar encima con el ratón y arrastrarlo) veremos que solo se ha desplazado el vértice en el polígono seleccionado (aunque compartan dicha geometría).
Por el contrario, si una vez seleccionado uno de los dos polígonos, pulsamos sobre la herramienta "Edición topológica", y a continuación pulsamos sobre el vértice que deseamos desplazar de forma solidaria, éste vértice se desplazará conforme vayamos arrastrando el ratón en todas las geometrías de la topología que contengan dicho vértice, bien de forma explícita -tienen un vértice en la misma coordenada- bien de forma implícita -tienen un segmento que contenga dicho vértice-.
Al final de la operación, todas las geometrías que contengan dicho vértice modificarán la posición de éste. Esta operación implica que aunque nosotros hayamos puesto en "modo edición" una sola capa de la topología, automáticamente se pondrán en modo edición todas aquellas capas de la topología que compartan el vértice desplazado. Siguiendo la operativa normal de la extensión de CAD de gvSIG, estos cambios no se almacenarán de forma persistente hasta que no se termine la edición.
En este caso solo se ha desplazado de forma solidaria un vértice común a dos geometrías de la misma capa. No obstante, si en la topología hubiese habido otras geometrías que compartiesen dicho vértice, éstas hubiesen modificado también de forma solidaria la posición del mismo.
Esta herramienta permite fragmentar una geometría de tipo linea o polígono a partir de una línea de recorte digitalizada con el ratón. Para usar la herramienta es necesario poner una capa de líneas o polígonos en edición (no es necesario que formen parte de una topología) y seleccionar la geometría que se desea fragmentar (si no existe una geometría seleccionada la herramienta no estará activa).
Esta operación se puede realizar también sobre geometría de tipo línea.
La herramienta "generalizar geometría" permite simplificar la representación de una geometría gvSIG de 1 o 2 dimensiones (polilínea o curva, polígono o superficie), de forma que se reduzca el número de puntos con el que se representa la geometría, preservándose las principales propiedades de ésta (se conserva la cantidad de información, reduciéndose el número de datos necesario para su representación [6]).
La herramienta será visible y activa en la barra de herramientas cuando se ponga en edición una capa de líneas (geometrías de dimensión 1) o polígonos (geometrías de dimensión 2), y se seleccionen los features cuyas geometrías se desee generalizar.
El comportamiento de la herramienta será distinto en función de que la geometría que se desee generalizar sea de líneas o de polígonos. Si la geometría es de tipo lineal se aplicará el algoritmo de Douglas-Peucker [7]. Si es de tipo poligonal, se aplicará el algoritmo de Douglas-Peucker a cada una de las partes del polígono (borde o hueco), de forma que el polígono resultante tendrá el mismo número de partes y huecos que el original (es decir, preserve su topología).
El algoritmo de Douglas-Peucker necesita una tolerancia (más detalles en [7]). Por simplificar el manejo de la herramienta, en vez de tener que introducir esta tolerancia cada vez que se desee generalizar un conjunto de geometrías, se utiliza una tolerancia por defecto que puede ser modificada a través del diálogo de preferencias de gvSIG, en la sección "Topología".
Esta herramienta produce un resultado opuesto a la herramienta anterior: dada una geometría de 1 o 2 dimensiones (polilínea, polígono), calcula la curva del tipo especificado por el usuario que mejor se ajusta a los puntos de la geometría original, obteniendo una nueva geometría densificada y suavizada.
La herramienta permite suavizar una geometría calculando los siguientes tipos de curvas:
Cada tipo de curva tiene una representación matemática de tipo paramétrico, lo que hace que exista un mínimo número de puntos de control necesario para definir la curva.
En sucesivas versiones de la extensión de Topología se podrán personalizar diferentes parámetros de control de las curvas parametrizadas de suavizado.
Esta herramienta es de gran utilidad para garantizar la consistencia topológica en el proceso de digitalización de polígonos de una misma capa. Si no se hace uso de esta herramienta, a la hora de digitalizar dos polígonos adyacentes es muy probable que no se gestione adecuadamente la geometría compartida, introduciendo inconsistencias.
Para poder utilizar esta herramienta, en primer lugar es necesario que exista una capa vectorial de polígonos activa en el TOC y en modo edición. Seguidamente, hay localizar los polígonos que van a compartir geometría con el nuevo polígono a digitalizar. Por último, hay que digitalizar una polílinea que represente el arco no compartido del polígono que se desea digitalizar. Cuando finalize la digitalización de este arco, la herramienta construirá automáticamente un polígono con el nuevo arco/polilínea digitalizado y los arcos de los polígonos adyacentes.
Con las herramientas disponibles hasta este momento en gvSIG, para averiguar el área o perímetro de una geometría existían dos alternativas:
Para cubrir este hueco (obtener el área y el perímetro exacto de una geometría ya existente) en la extensión de topología y análisis vectorial avanzado se ha incluido la herramienta "Información Geometríca".
Su uso es muy simple, simplemente hay que pulsar el botón de la herramienta (previamente debe estar seleccionada una capa vectorial en el TOC) y picar con el ratón sobre la geometría de la que se quiere obtener más información.
El diálogo que se muestra al usuario tras pulsar con el ratón sobre una geometría proporciona la siguiente información:
La representación en WKT de la geometría puede ser de utilidad para procesarla con otros programas: bases de datos (MySQL, PostGIS, etc.), constructor de pruebas unitarias de JTS, etc.