Archivo de la etiqueta: condiciones

Selección automática de código en función de atributos de base de datos al cargar Shapefiles o Geomedia

Si cargas una cartografía contenida en una base de datos, como por ejemplo Geomedia o Shapefile, las coordenadas de la geometría son un campo más de entre todos los campos que tiene cada una de las tablas de la base de datos.

Por ejemplo, supongamos un shapefile denominado Via que almacena las geometrías de vías de comunicación:

En la tabla tenemos un identificador de la geometría, la geometría en sí, además de un campo en el que se almacena el número de carriles de la vía y su nombre, tal y como puedes ver a continuación…

ID Geometría* Carriles Nombre
1233 100,100,
110, 100,
2 C230
1234 200,200,
210, 200,
6 M-30
* En realidad en un shapefile las geometrías están almacenadas en el archivo .SHP y no en la propia base de datos, pero existe una relación 1 <-> 1 entre el número de registros en la base de datos y el número de geometrías almacenadas en el archivo .SHP, así que podemos asumir que lo que hay en el .SHP es un campo más de la base de datos.

Podríamos crear una tabla de códigos con el código Vias que simplemente enlace con esta tabla de base de datos. De esta manera Digi3D.NET al cargar el shapefile de vías crearía dos entidades con el código Vias, pero quizás nos interese diferenciar el tipo de vía en función del número de carriles.

Esto podemos hacerlo mediante la opción Condiciones que aparece en la sección Base de datos para cada uno de los códigos que aparecen en la pestaña Codigos del programa Editor de tablas de códigos.

Las condiciones consisten en triplas [campo][operador][valor]. Puedes utilizar los siguientes operadores:

Operador Significado
< Menor
<= Menor o igual
= Igual
>= Mayor o igual
> Mayor

Puedes poner tantas condiciones como quieras (separadas por comas), incluso puedes utilizar el mismo nombre de campo varias veces,  y se deben cumplir todas ellas para que se decida seleccionar un código.

De modo que en nuestro ejemplo tendríamos que indicar las siguientes condiciones:

Código Condición
Carretera Carriles=2
Autopista Carriles>2

Descarga los archivos con los que hemos creado el vídeo del siguiente enlace.

Puedes ver esta funcionalidad en acción en el siguiente vídeo:

Mejoras en las condiciones en formatos de archivos GIS

Digi3D.NET dispone desde hace un año aproximadamente de una herramienta que permite diferenciar códigos en distintas geometrías almacenadas en una misma tabla de base de datos en formatos de archivos SIG como son Geomedia y Shapefile.

En el programa Editor de Tablas de códigos podemos añadir condiciones al campo Condiciones asociado con cada código. En estas condiciones básicamente podemos poner el nombre de un campo y un valor. Podemos poner tantas condiciones como queramos.

De esta manera, si por ejemplo disponemos de una tabla denominada VIAS_DE_COMUNICACION que almacena (sorprendentemente) geometrías de tipo vías de comunicación,  y ésta dispone entre otros de los campos ESTADO y CARRILES, podemos indicarle a Digi3D.NET si se encuentra en esta tabla una geometría que tenga los siguientes valores:

ESTADO=27

que considere esa geometría una Autopista o autovía, pero si en vez de esos valores, se encuentra con una geometría con valores:

ESTADO=44

que considere esa geometría como una autopista en construcción.

Esto lleva con nosotros un año aproximadamente. Lo que hemos añadido hoy es la posibilidad de utilizar distintos operadores, pues hasta hoy el único operador que se aceptaba era el de igualdad, de modo que únicamente se podía comprobar si el atributo X es igual al valor Y.

Hemos añadido los siguientes operadores:

Operador a introducir en la tabla de códigos  Significado
 <  Menor
 <=  Menor o igual
 =  Igual
 >=  Mayor o igual
 >  Mayor

de esta manera, si por ejemplo queremos diferenciar entre carretera y autopista en función del número de carriles, y suponiendo que el número de carriles se almacena en el campo CARRILES, podríamos hacer algo así:

Añadir al código de Carretera estas condiciones:

ESTADO=27
CARRILES<=2

Al código de Carretera en construcción las condiciones:

ESTADO=44
CARRILES<=2

Al código de Autopista las condiciones:

ESTADO=27
CARRILES>2

Al código de Autopista en construcción las condiciones:

ESTADO=44
CARRILES>2

Puedes descargarte el ejemplo del vídeo de a continuación de la siguiente URL: http://digi21.blob.core.windows.net/ejemplos/OperadoresEnCondicionesDeCodigos.zip

y a continuación tienes un vídeo en el que puedes ver esta funcionalidad en acción: