Archivo de la categoría: DigiNG

Control de bordes: detectar_continuidad_limite

Digi3D.NET incorpora herramientas que nos van a permitir detectar continuidad de geometrías entre bordes.

Muchas veces nos interesa localizar líneas que llegan al marco de hoja y que no continuan en la hoja adyacente. La orden detectar_continuidad_limite nos va a ayudar a realizar esta tarea.

Este orden recibe como parámetro el código de las líneas que forman el límite por el cual queremos detectar discontinuidades y analiza todas las entidades visibles (activas con las órdenes ON y OFF) y que no tienen continuidad.

El resultado final es una serie de tareas en el Panel de tareas de Digi3D.NET que nos mostrarán los distintos errores localizados.

Puedes ver un vídeo en el que se explica cómo se ha desarrollado esta funcionalidad en la siguiente dirección: Detectar continuidad límite.

A continuación tienes un vídeo en el que se muestra en funcionamiento esta orden:

Guardando la tabla de códigos activa

Digi3D.NET mostrando el menú de opciones Guardar Tabla de códigos

Digi3D.NET permite guardar la tabla de códigos con la que estás trabajando mediante la opción del menú Archivo/Herramientas/Guardar tabla de códigos.

Esta opción es muy útil si estás trabajando con una tabla de códigos generada automáticamente por Digi3D.NET, tal y como se explica en el post Trabajar sin tabla de códigos.

Al seleccionar esta opción, Digi3D.NET mostrará un cuadro de diálogo Guardar como que te permitirá almacenar la tabla de códigos en un archivo. De esta manera podrás modificarla (como asignar colores, restricciones a los campos de base de datos, asignar parámetros de traducción, …) con el editor de tablas de códigos.

Marcando los vértices de las entidades seleccionadas

Digi3D.NET mostrando los vértices de una una línea seleccionada como circunferencias con un ancho de 5 píxeles y con color verde claro.

Digi3D.NET mostrando los vértices de una una línea seleccionada como circunferencias con un ancho de 5 píxeles y con color verde claro.

Digi3D.NET permite que configuremos los parámetros de visualización de las marcas que se insertan sobre cada vértice de las entidades seleccionadas por el usuario.

Al seleccionar una entidad, Digi3D.NET muestra una animación para indicar el sentido en el que se digitalizó (dibujando partes de la entidad seleccionada en color blanco y partes en color rojo, que se van desplazando para generar un efecto de animación), así como unas marcas que indican la ubicación de los vértices que forman la entidad seleccionada. De esta manera el usuario sabe si está cerca o lejos de un vértice.

El usuario es libre de configurar la apariencia de estas marcas. Para ello, tan solo tiene que cambiar la configuración en el cuadro de diálogo Configuración, en la sección Vértices de entidades seleccionadas disponemos de las siguientes opciones:

Campo Descripción Valor por defecto
Tipo de marca Indica el tipo de marca que queremos nos muestre Digi3D.NET sobre cada vértice.

Podemos seleccionar entre las siguientes opciones:

  • No mostrar ninguna marca
  • Mostrar un cuadrado
  • Mostrar un triángulo
  • Mostrar un círculo
Cuadrado
Tamaño Indica el semi-ancho en píxeles de la marca a utilizar. 5 píxeles
Color Indica el color con el que se dibujará la marca. Azul sólido (sin transparencia) #0000FFFF

Mejorado el soporte de base de datos en el Editor de Tablas de Códigos

Hasta ahora, en Digi3D.NET las opciones del menú Herramientas/Base de datos/Importar esquema de una base de datos Geographics o Herramientas/Base de datos/Importar esquema de una base de datos CATDBS del Editor de Tablas de Códigos únicamente eran capaces de conectarse con bases de datos cuyo proveedor fuera accesible desde el cuadro de diálogo Data Link Properties de Windows.

No todos los proveedores de base de datos añaden opciones en el cuadro de diálogo Data Link Properties de modo que si tenemos una base de datos que no añada opciones en ese cuadro de diálogo, como bases de datos en formato Microsoft SQL Server Compact no podríamos utilizar estas opciones para importar el esquema.

Cadena de conexión

En la nueva versión del programa, al seleccionar cualquiera de estas dos opciones ya no se muestra directamente el cuadro de diálogo Data Link Properties, sino que se muestra el cuadro de diálogo Cadena de Conexión que nos va a permitir teclear la cadena de conexión manualmente o (pulsando el botón de los tres puntos) mostrar el cuadro de diálogo Data Link Properties

Si quieres aprender el formato de las cadenas de conexión para bases de datos Microsoft SQL Server Compact visita la entrada Conectando con bases de datos SQL Server Compact en el blog de Digi3D en profundidad.

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.

Mejoras en las órdenes MOD y MOD_Z con líneas cerradas

DigiNG.NET ha mejorado significativamente el comportamiento de las órdenes MOD y MOD_Z cuando modificamos líneas cerradas y polígonos.
Si modificamos una línea cerrada encontramos dos soluciones. En versiones anteriores de Digi3D, el programa modificaba la línea sin consultar al usuario por cual de las dos soluciones optar, y además si el área afectada en la modificación pasaba por el origen de la línea cerrada, el comportamiento era imprevisible.

DigiNG.NET ha mejorado mucho este comportamiento, pues si detecta que el usuario está modificando una línea cerrada, antes de modificar la línea muestra un cuadro de diálogo titulado Localizadas dos soluciones en el que se le solicita al usuario que seleccione la solución que le interesa. En la parte izquierda del cuadro de diálogo se mostrará la solución con mayor area y en la parte derecha la solución con menor area. La opción seleccionada por defecto en este cuadro de diálogo será siempre la opción con mayor area.

En los gráficos, se dibuja la entidad sin modificar en color gris, y la solución en color rojo, de modo que es muy sencillo ver la modificación que se va a realizar a la geometría.

Polígonos

Si modificamos el contorno extesior de un polígono, y este tiene huecos, el programa no mostrará el cuadro de diálogo y se quedará con la solución que hace que todos los huecos sigan siendo huecos del polígono.
Si la modificación es tán grande que excluye algún hueco del polígono no se permitirá realizar la modificación.

Rellenos con texturas

DigiNG.NET permite que seleccionemos una textura como relleno en líneas cerradas, polígonos y topologías.
Si quieres añadir una textura como relleno, tan solo tendrás que seguir los siguientes pasos:

SeleccionandoUnBitmapDeRelleno

  1. Crear/comprar/localizar en internet la textura que deseas utilizar como fondo.
  2. Asegurarte de que el tamaño de esta es múltiplo de una potencia de 2, es decir 2,8,16,32,64,128,256,512,1024,…
  3. Copiarla en tu directorio de símbolos.
  4. Editar la tabla de códigos y en el código en cuestión cambiar el valor de la propiedad Rellenar a Si.
  5. Seleccionar la textura a utilizar en el campo Bitmap de relleno.

Si dibujamos una línea cerrada con ese código, o un polígono (y siempre que tengamos el flag RELLENAR a verdadero, DigiNG.NET nos mostrará la línea rellena con la textura. La textura se repetirá indefinidamente hasta rellenar la entidad en cuestión.

Si el polígono tiene huecos, estos no se rellenarán con la textura.

Visualizar puntuales como una imagen

DigiNGMostrandoTexturasPuntuales

DigiNG.NET nos permite seleccionar una imagen para representar un puntual. Gracias a esta característica podemos mejorar mucho el aspecto de nuestros mapas.

Para hacer que un puntual se represente con una imagen tenemos que seguir estos pasos:

  1. Copiar la imagen que queremos utilizar en el directorio de símbolos de DigiNG.NET (aquel que indicas en la pestaña Archivo de dibujo en el cuadro de diálogo Nuevo proyecto.
  2. Crear un estilo en la tabla de códigos cuyo símbolo sea la imagen que nos interese.
  3. Indicar en el código en cuestión que el estilo a utilizar es el estilo que tiene seleccionada la imagen.
  4. Activar el patrón.

Si al cargar una tabla de códigos se localiza en el directorio de símbolos alguna imagen con un formato de entre los soportados por DigiNG.NET (.bmp, .tif, .jpg, .j2p, .ecw, .sid) esta imagen se cargará automáticamente en la memoria de texturas de la tarjeta gráfica.
Como la memoria de texturas de la tarjeta gráfica no es infinita, te recomiendo utilizar texturas pequeñas. Además, esta memoria es una memoria especial, ya que únicamente se pueden cargar texturas cuyo ancho o alto sea un número potencia de 2, lo que quiere decir que si por ejemplo tenemos una textura de 1025×640 píxeles, la memoria a solicitar a la tarjeta gráfica será 2048×1024, por lo que se desaprovechará mucha memoria innecesariamente.

Puedes crearte tu mismo las texturas a utilizar mediente programas como Paint, Paint.NET (el que yo suelo utilizar habitualmente), o herramientas profesionales como PhotoShop o The Gimp o tomando alguna fotografía de un objeto real. DigiNG.NET admite además canal alpha, así que puedes hacer huecos dentro de la textura jugando con este valor.

Si no quieres perder el tiempo creando texturas, te recomiendo que compres texturas a empresas que hacen texturas profesionalmente como en DOSCH Design que tienen texturas de distintos tipos de árboles a vista de pájaro por solo 69€ y es la que he utilizado en la capura de pantalla que encabeza este post.

Cargando ortofotos en DigiNG.NET

DigiNG.NET considera a las ortofotos como un tipo más de archivos de referencia, de modo que podemos cargar una ortofoto mediante la orden CARGA_F (o mediante el menú Archivo/Cargar archivo de referencia…, o pulsando el botón corresponeidnte en la barra de herramientas del panel acoplable Archivos de dibujo) y se descargan con la orden DEJAR (o mediante el menú Archivo/Descargar archivo de referencia… o mediante la opción Descargar este archivo del menú contextual que aparece al hacer clic con el botón derecho del ratón en el nombre de la ortofoto en el panel Archivos de dibujo).

Las órdenes CARGA_RASTER y DEJAR_RASTER han pasado a mejor vida, de modo que no podemos utilizarlas en DigiNG.NET.

Condiciones para poder cargar una ortofoto

DigiNG.NET nos va a permitir cargar ortofotos siempre que se cumplan tres requisitos:a capaz de reconocer el formato de la imagen y siempre que sepa localizar la georeferenciación de la ortofoto.

  1. Que se reconozca la extensión de la imagen.
  2. Que se pueda localizar la geo-referenciación de la imagen.
  3. Que el sistema de coordenadas asignado a la ventana de dibujo sea el mismo que el sistema de coordenadas de la imagen.

Formatos de imagen reconocidos por DigiNG.NET

DigiNG.NET permite cargar imágenes de los siguientes formatos:

Tipo de imagen Extensión del archivo
Imágenes en formato TIFF .tif
Imágenes en formato ECW .ecw
Imágenes en formato JPEG 2000 .jp2
Imágenes en formato MrSID .sid
Imágenes en formato JPEG .jpg
Imágenes en formato BMP .bmp

Geo-referenciación

La ortofoto tiene que estar geo-referenciada, lo que significa que en algún sitio tiene que aparecer información que le haga saber al programa la posición de la imagen así como su orientación y tamaño.

La geo-referenciación consiste en informar de las coordenadas de las cuatro esquinas de la imagen (o la coordenada del primer pixel de la imagen así como su tamaño y orientación), y del sistema de coordenadas de referencia al que está referida esa coordenada/s.

Algunos formatos de imagen permiten almacenar la geo-referenciación de la imagen dentro del propio archivo, como un metadato.

Los formatos que admiten esa posibilidad son los siguientes:

  • Archivos TIFF (que cuando tienen posicionamiento se denominan GeoTIFF)
  • Archivos ECW
  • Archivos JPEG 2000
  • Archivos MrSID

El resto de formatos de imagen, como son JPEG, BMP no permiten almacenar en la propia imagen la geo-referenciación.

Si la imagen no tiene almacenada internamente información de geo-referenciación (bien porque el formato no lo permite -como por ejemplo .bmp- o porque sencillamente no tiene esa información) se intentará localizar un archivo World File.

El archivo World File se intentará localizar en el mismo directorio que la imagen, con el mismo nombre que esta, pero con una extensión que dependerá de la extensión de la imagen.

Existe un convenio para dar nombre a la extensión de los archivos World File, y consiste en que el archivo World File tenga la extensión formada por el primer y tercer carácter de la extensión de la imagen al que se le concatena una «w» al final (la w es de World).

A continuación tienes una tabla que define las extensiones de los archivos World File que va a intentar cargar DigiNG.NET si la imagen no tiene geo-referenciación:

Tipo de imagen Extensión del archivo World File
Imágenes en formato TIFF (.tif) .tfw
Imágenes en formato ECW (.ecw) .eww
Imágenes en formato JPEG 2000 (.jp2) .j2w
Imágenes en formato MrSID (.sid) .sdw
Imágenes en formato JPEG (.jpg) .jg2
Imágenes en formato BMP (.bmp) .bpw

El inconveniente que tiene el archivo World File es que no especifica el sistema de coordenadas sobre el que está definida la coordenada del centro del primer pixel, y como DigiNG.NET requiere ese dato, en el caso de que la geo-referenciación se extraiga de un archivo World File se va a intentar obtener de un archivo Shapefile Projection Format.

Este es un archivo con extensión .prj que define el sistema de coordenadas sobre el cual está referida la coordenada del archivo World File.
DigiNG.NET intentará localizar ese archivo en el mismo directorio que la imagen y con el mismo nombre, pero siempre con la extensión .prj.

Si no se localiza este archivo, se considerará que la coordenada está referida a un sistema de coordenadas de referencia local.

Una característica muy importante a la hora de cargar la ortofoto es que DigiNG.NET únicamente nos permitirá cargar una ortofoto si su sistema de coordenadas asociado coincide con el activo en la ventana de dibujo. Esto es muy importante: Si estamos visualizando un archivo en proyectadas (por ejemplo ETRS89/UTM Zona 30N) e intentamos cargar una ortofoto en geográficas DigiNG.NET no nos lo va a permitir, y nos mostrará un cuadro de error indicándonos que tenemos que cambiar el sistema de coordenadas de la ventana de dibujo para poder cargar esa ortofoto.

Una vez cargada la ortofoto, esta aparecerá como un archivo más en el panel de Archivos de dibujo.
Si desplegamos la flecha a la izquierda del nombre de la ortofoto, aparecerán las opciones de visualización de la ortofoto:

  • Si cambiamos la propiedad Visible a falso, la ortofoto dejará de visualizarse.
  • Si cambiamos el valor de Opacidad podremos hacer que la ortofoto se visualice transparente (esta opción nos puede venir bien si tenemos varias ortofotos cargadas con solape). Si ponemos aquí un valor 0 la imagen será totalmente transparente y si poner 255 (que es el valor por defecto) será completamente opaca.
  • Si cambiamos el valor de Tipo de interpolación se modificará la forma en la que se muestran los píxeles al alejar la ortofoto o al acercarla. Si seleccionamos la opción Bilineal al acercarnos nos dará la falsa sensación de que la imagen tiene más resolución. Si seleccionamos Vecino más próximo veremos el píxel.

Valores separados por comas (CSV)

Uno de los importadores de archivos de dibujo que implementa Digi3D 2011 es el importador de valores separados por comas (o archivos CSV). Estos archivos tienen la extensión .csv o archivos .txt.

Los archivos de valores separados por comas se caracterizan por ser archivos de texto (pueden ser ASCII, UTF-8, UTF-16, UNICODE), pero de texto, que tienen valores separados por algún carácter especial, que no tiene por que ser una coma. En el ejemplo del vídeo del final de esta entrada, el archivo (aunque no lo digo en el vídeo) es un archivo UTF-8, y el separador es el tabulador.

Estos archivos están compuestos por tantas líneas como registros, y cada una de las líneas tiene el mismo número de valores.

El importador de archivos CSV nos va a permitir visualizar rápidamente el contenido de estos archivos mostrando el campo que desee el usuario en unas coordenadas que se extraen del propio archivo, lo que significa que estos archivos al menos deben de tener un campo para extraer la coordenada X y otro para la coordenada Y. La coordenada Z tiene menos importancia si lo que estamos visualizando es toponimia. Si las coordenadas del archivo son geográficas, deberá existir al menos un campo para la latitud y otro para la longitud.

Si el archivo CSV no tiene cabecera, tendremos que crear una, pues es fundamental para que Digi3D 2011 nos muestre una ventana en el panel de archivos de dibujo que nos permita seleccionar el campo a visualizar en la ventana de dibujo.

En el video de a continuación podrás ver cómo crear un archivo CSV, cargarlo en Digi3D 2011 y a continuación cómo descargar un archivo del sitio Geonames con información acerca de todas las poblaciones de España. De este sitio podemos descargar también otro archivo con todos los códigos postales de España o de cualquier país del mundo.