Archivo de la etiqueta: geomedia

Mejoras al cargar archivos de dibujo de Geomedia y en formato Shapefile

Acabamos de añadir a Digi3D.NET una mejora que puede incrementar tu productividad al trabajar con archivos de dibujo de Geomedia o Shapefiles: La posibilidad de especificar las tablas a cargar.

En ocasiones quieres cargar una determinada tabla, y no todas las que tiene la base de datos (aquí estoy considerando que si estás trabajando con Shapefiles, la carpeta donde están estos es una base de datos en si misma, cuyas tablas son los archivos .dbf localizados en dicha carpeta, en caso de trabajar con Geomedia es más sencillo de entender ya que las tablas están dentro de un archivo .mdb de Microsoft Access que es en sí mismo una base de datos).

Hasta ahora no podías hacer eso, y cuando cargabas un archivo de Geomedia o una carpeta con Shapefiles el programa cargaba todas las tablas que encontraba.

A partir de ahora, antes de cargar ninguna geometría se analizan las tablas y se muestra al usuario un cuadro de diálogo preguntándole por las tablas que quiere cargar. En este cuadro de diálogo se muestran tanto los nombres de las tablas como un valor que indica el número de geometrías que tiene dicha tabla.

El usuario puede activar o desactivar la carga de una determinada tabla. El cuadro de diálogo además permite desactivar todas las tablas o activarlas todas con un solo clic.

Una vez aceptamos el cuadro de diálogo, el programa carga únicamente las tablas que hemos indicado.

Si no quieres ver este cuadro de diálogo, puedes deshabilitar este comportamiento mediante la opción del menú Herramientas/Configuración, localizando las secciones Importador/Exportador de archivo Datawarehouse de Geomedia/Preguntar por capas a cargar o Importador/Exportador de archivos Shapefile/Preguntar por capas a cargar. La opción por defecto para estas dos configuraciones de Si, pero si lo cambias a No el programa se comportará como siempre y cargará todo lo que encuentre sin preguntar.

Añadida compatibilidad con Geomedia en la versión de 64 bits de Digi3D.NET

Acabamos de añadir compatibilidad con Geomedia a la versión de 64 bits de Digi3D.NET.

Hasta ahora las versiones de 64 bits de Digi3D.NET no podían establecer una conexión de base de datos con archivos Microsoft Access pero a partir de hoy sí que pueden, de manera que hemos hecho que el instalador de 64 bits instale el componente Digi21.IO.Geomedia que es el importador/exportador de archivos de Geomedia.

Esto va a provocar que a partir de la semana que viene tengamos dos instaladores distintos: el instalador para la versión de 64 bits, y el instalador para la versión de 32 bits.

Hasta hoy al instalar el programa se instalaban simultáneamente ambos instaladores, pues la versión de 64 bits no podía abrir archivos Geomedia. El tener ambas versiones instaladas simultáneamente provocaba sin embargo un problema logístico con los ensamblados públicos para programación por parte de terceros en .NET, pues éstos tienen el mismo nombre (Digi21.DigiNG, Digi21.DigiNG.Plugin, etc.) independientemente de la versión instalada 32 o 64 bits, lo que podía dar problemas. A partir de la semana que viene, o se tiene instalada la versión de 64 bits o la de 32, pero no se podrán tener instaladas ambas versiones simultáneamente para evitar este tipo de problemas.

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:

Añadido soporte para trabajar con archivos Geomedia Datawarehouse (.mdb)

Campos de la base de datos

Ahora es posible trabajar en DigiNG.NET de forma nativa en archivos .mdb en formato Datawarehouse de Geomedia, sin necesidad de importar o exportar archivos.

No es necesario tener instalada una licencia de Geomedia para poder trabajar con este tipo de archivos. La implementación es nativa, sin librerías de terceros como Geomedia Objects de modo que el rendimiento es óptimo.

Para el usuario es muy sencillo, tan solo tiene que seleccionar en el campo Archivo de dibujo de la pestaña Archivo de dibujo del cuadro de diálogo Nuevo proyecto un archivo con extensión .mdb en formato Datawarehouse de Geomedia.

Si no disponemos de una tabla de códigos, DigiNG.NET añadirá códigos a la tabla de códigos activa en el momento de la carga, pero únicamente en memoria. Si queremos almacenar esa tabla tendremos que hacerlo con la única herramienta disponible para este fin que es el Editor de tablas de códigos que podemos ejecutar en Inicio / Todos los programas / Digi21.net / Digi3D.NET / Digi3D.NET.

DigiNG.NET nos permite tanto crear entidades nuevas como eliminar entidades existentes o modificarlas. Además antes de almacenar una entidad nueva podemos indicar en el panel acoplable campos de la base de datos el valor de los campos que se van a almacenar junto con la geometría, y podemos modificar registros existentes en la base de datos con la orden EDITAR_COD.

Entidades eliminadas

Geomedia no permite indicar si una determinada entidad está eliminada o no.

En Geomedia si se elimina una entidad, desaparece todo rastro de ella. La filosofía de trabajo de usuarios Digi, sin embargo si que permite marcar entidades para poder recuperarlas con posterioridad y para poder realizar un número ilimitado de operaciones deshacer.

Para permitir trabajar con filosofía Digi en archivos de Geomedia, DigiNG.NET añadirá dos tablas a la base de datos: Digi3D_Tablas y Digi3D_Eliminados, donde se almacena información sobre las entidades eliminadas.

Si eliminamos entidades y no comprimimos, al abrir el archivo .mdb con Geomedia, éste mostrará las entidades eliminadas. Para eliminar permanentemente las entidades tendremos que ejecutar la orden comprimir.

Limitaciones

  • DigiNG.NET no es capaz de crear un archivo Geomedia datawarehouse por si mismo. Requiere que utilicemos un archivo de semilla (un archivo .mdb creado por Geomedia que únicamente dispone de las correspondientes tablas) que nos habrá proporcionado el cliente.
  • DigiNG.NET no puede rellenar el campo de clave espacial de Geomedia al ser un algoritmo patentado. Esto no es problema porque DigiNG.NET no lo necesita y el usuario final puede rellenarlo automáticamente con la ejecución de un comando en Geomedia.
  • Por ahora, DigiNG.NET no es capaz de reconocer el sistema de coordenadas de referencia del archivo .mdb, por lo tanto el usuario tiene que indicar manualmente en los campos Sistema de coordenadas de referencia horizontal y vertical de la sección Motor de importación/exportación de la pestaña Archivo de dibujo del cuadro de diálogo Nuevo proyecto.
  • Por ahora no de pueden almacenar entidades de tipo texto.