Archivo de la categoría: DigiNG

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.

Utiliza tu GPS como dispositivo de entrada en Digi3D.NET

Hemos añadido un nuevo método al interfaz de programación de DigiNG denominado SendInputDeviceEvent que nos va a permitir programar nuestros propios dispositivos de entrada en DigiNG.

Gracias a este nuevo método, hemos podido crear una extensión para la ventana de dibujo que nos permite conectarnos con un GPS y utilizar los datos del GPS como dispositivo de entrada de DigiNG, de manera que podemos dibujar cualquier tipo de entidad con esta orden.

Una vez instalado, puedes seleccionar la opción del menú Ventana/GPS clásico o VentanAdministradorDeDispositivosMostrandoUbloxa/GPS por API de localización.

Si tu GPS aparece en el Administrador de dispositivos como un sensor en el nodo Sensores (como en la captura de pantalla que tienes a la derecha en la que puedes ver en el nodo Sensores mi GPS que es un u-blox 6 GPS Location Sensor), tendrás que utilizar la opción de GPS por API de localización. Si tu GPS no aparece en el nodo Sensores, tendrás que utilizar la opción de GPS clásico.

Una vez seleccionada la opción del menú, aparecerá el Panel GPS con cuatro botones:PanelGPS.PNG

  • Botón Conectar
  • Botón Dato
  • Botón Tentativo
  • Botón Cancelar

El botón Conectar te permite conectarte y desconectarte del GPS. Una vez que consigues conectarte con el GPS, éste empieza a enviar coordenadas a la ventana de dibujo, es decir, cada vez que llegue una coordenada distinta, es como si movieses el dispositivo de entrada (manivelas, topomouse, etc.).

Cuando se consigue establecer conexión con el GPS, el texto de este botón cambia a Desconectar. Si no queremos enviar coordenadas a la ventana de dibujo tendremos que pulsar este botón para desconectarnos del GPS.

El botón de Dato tiene un comportamiento especial: Cuando lo pulsas se queda pulsado. Debes pulsarlo una segunda vez para despulsarlo. Es como si pisases el pedal. Hasta que no lo vuelves a pulsar no se levanta. Esto es así para facilitar el registro de polilíneas.

Si tienes pulsado el botón de Dato y pulsas o el botón de Tentativo o el botón de Cancelar, el botón de Dato se despulsará.

El botón de Tentativo envía el evento de tentativo en las coordenadas en las que esté en este momento el GPS.

El botón de Cancelar envía el evento de cancelar en las coordenadas en las que esté en este momento el GPS.

 

Cambia el brillo, contraste o gamma en las ortofotos cargadas en la ventana de dibujo

Estas vacaciones no hemos parado y hemos añadido varias funcionalidades a Digi3D.NET.

Hoy te presentamos una novedad solicitada por los usuarios del IGAC de Colombia: La posibilidad de controlar el brillo, contraste y la gamma de las ortofotos cargadas en la ventana de dibujo mediante la orden CARGA_F.

A partir de ahora al cargar una ortofoto en la ventana de dibujo, al desplegar el nombre de la ortofoto en el panel Archivos de dibujo aparecerán tres opciones que nos permitirán cambiar interactivamente el brillo, contraste y gamma de las ortofotos cargadas.

Estos controles son individualizados por cada ortofoto cargada.

Puedes ver esta nueva funcionalidad en el siguiente vídeo:

 

Imprime los nombres de las órdenes de Digi3D.NET

La ventana de dibujo de Digi3D.NET no implementa las órdenes (como CIR2P, PARALELA, etc.), sino que delega esa responsabilidad en cada una de las extensiones del programa.

Estas extensiones son una serie de archivos con extension .DLL ubicados en c:\Archivos de programa\Digi21.net\Digi3D.NET y cuyos nombres forman el siguiente patrón: DigiNG.[extension].dll, como por ejemplo DigiNG.OrdenesTopologia.dll o DigiNG.OrdenesStandard.dll.

Cuando tecleamos el nombre de una orden, Digi3D.NET a priori no esa orden existe o no, de manera que consulta a cada una de las extensiones (DigiNG.OrdenesTopologia, DigiNG.OrdenesStandard, etc.) si implementan dicha orden. En caso afirmativo, le ordena a la extensión correspondiente que ejecute la orden con los parámetros que haya especificado el usuario.

Pero los nombres de las órdenes dentro de cada uno de estos archivos .DLL no tiene nada que ver con los nombres de las órdenes que tiene que ejecutar el usuario. El nombre de las órdenes internamente es un GUID. La orden (en castellano) CIR2P por ejemplo en realidad se llama {C9CE4CF2-6029-48e7-9FC1-141708C22393}. De hecho puedes probarlo tú mismo, puedes ejecutar la orden {C9CE4CF2-6029-48e7-9FC1-141708C22393} y comprobarás que en realidad se está ejecutando la orden CIR2P, de manera que antes de preguntarle a cada una de la extensiones si implementan una determinada orden, debe transformar dicho nombre de orden al formato GUID, y para ello utiliza los archivos de alias, que no son más que unos archivos .XML ubicados en c:\Archivos de programa\digi21.net\Digi3D.NET\es-ES para español de España y en c:\Archivos de programa\digi21.net\Digi3D.NET\en-US para inglés americano.

En esos archivos es donde se indica que la orden CIR2P en realidad se llama {C9CE4CF2-6029-48e7-9FC1-141708C22393} y  donde además se proporciona una pequeña descripción de cada orden y una lista (quizás no todo todo lo bien actualizada que debería ser)  de órdenes relacionadas.

Bien, pues hoy presentamos una novedad provocada por una solicitud de soporte técnico que recibimos la semana pasada solicitando la posibilidad de imprimir esta información en forma tabulada. Hemos modificado estos archivos de manera que si los arrastras por ejemplo a una ventana de Google Chrome, éste en vez de mostrarte el contenido del archivo .XML, te mostrará una tabla con dos columnas: el nombre de la orden y la pequeña descripción de dicha orden.

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

Crea menús de Digi con el Editor de Tablas de Códigos

Digi3D.NET dispone de un panel denominado Cuadro de herramientas que es el heredero de los menús de Digi de MS-DOS. Es un cuadro que dispone de un desplegable denominado Carpetas. Una vez seleccionada una opción en el desplegable, se muestran en el contenido principal del panel los grupos de herramientas asociados a dicha carpeta, y dentro de cada grupo  se localizan las herramientas, que no son más que opciones que al pulsarlas ejecutan una seria de órdenes.

Panel cuadro de herramientas.PNG

Este panel te permite crear carpetas y en cada carpeta crear grupos y en cada grupo te permite crear tantas acciones como quieras.

En esta imagen puedes ver el panel Cuadro de herramientas en el cual está seleccionada la carpeta Restitución. Esta carpeta tiene dos grupos: Altimetría e Hidrografía. El usuario ha desplegado la opción Altimetría y el panel está mostrándole distintas opciones como Ver solo altimetría, Curva maestra, etc.

Hasta hoy Digi3D.NET rellenaba este panel a partir de la información proporcionada Herramientas/Configuración/DigiNG/Menú tal y como puedes ver en la siguiente captura de pantalla:

Dialogo configuracion mostrando opcion de menu de digi

Este panel puede ayudar a incrementar mucho la productividad, pero el problema es que en la práctica casi nadie lo utiliza pues hay que confeccionar el archivo manualmente.

Hoy presentamos novedades al respecto: Hemos eliminado la posibilidad de tener un archivo de menú, de manera que hemos quitado toda referencia al menú en el cuadro de diálogo de Configuración, y hemos hecho que los menús formen parte de la tabla de códigos, de manera que hemos añadido una nueva pestaña al programa Editor de Tablas de Códigos denominada Cuadro de Herramientas que te va a permitir crear un cuadro de herramientas gráficamente. Puedes ver esta nueva pestaña en la siguiente captura de pantalla:

Editor de tablas de codigos mostrando panel de cuadro de herramientas.PNG

Como puedes ver, puedes crear carpetas. Cuando seleccionas una carpeta puedes añadir grupos y acciones.

Una vez seleccionada una acción, puedes introducir en el cuadro de la derecha tantas órdenes como quieras que se ejecuten cuando el usuario seleccione esa acción en particular.

Si al cargar un archivo de dibujo seleccionas una tabla de códigos que tenga incorporado un cuadro de herramientas, por el mero hecho de abrir el archivo el panel de Cuadro de Herramientas mostrará las opciones que tengas asignadas en la tabla de códigos.

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

Nuevas órdenes ONT y OFFT

Presentamos dos órdenes nuevas: ONT y OFFT para Digi3D.NET que te van a permitir activar o desactivar la visualización de entidades en función de su código y tipo.

Estas órdenes reciben como parámetros una o varias tuplas formadas por un código y un tipo.

El tipo como es habitual en Digi3D puede ser cualquier combinación de los siguientes valores:

Valor Significado
L Líneas
P Puntos
T Textos
H Polígonos
C Complejos

De manera que si por ejemplo si no queremos visualizar entidades de tipo Texto y Punto con el código 020200, tendremos que ejecutar la siguiente orden:

OFFT=020200 CT

Y si además no queremos ver complejos con el código 010101, podríamos hacerlo en una única llamada a

OFFT=020200 CT 010101 C

En el siguiente vídeo te mostramos esta funcionalidad en acción:

 

 

Prohíbe la ejecución de órdenes

En ocasiones nos interesa prohibir la ejecución de alguna orden de Digi3D.NET para evitar problemas que puedan ocasionar dichas órdenes, como por ejemplo la orden Gen, que generaliza un archivo de dibujo pudiendo estropear los vértices topológicos existentes en un segmento.

Presentamos hoy una nueva orden que nos va a permitir prohibir la ejecución de órdenes: PROHIBE_ORDEN.

Esta orden espera que le pasemos como parámetros los nombres de las órdenes que queremos prohibir. Podemos ejecutar esta orden tantas veces como queramos o podemos anular varias órdenes simultáneamente pasándole múltiples parámetros.

Por ejemplo, si queremos anular las órdenes G, GEN y COMPRIMIR, tan solo tendremos que ejecutar la orden:

PROHIBE_ORDEN=G GEN COMPRIMIR

y habremos anulado dichas órdenes.

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

 

 

Abre un navegador mostrando OpenStreetMap en la ubicación de tu ventana de dibujo

Acabamos de añadir a Digi3D.NET la posibilidad de abrir un navegador mostrando un mapa de OpenStreetMap centrado en la posición en la que tienes la ventana de dibujo.

Para ello, tan solo tienes que seleccionar la opción del menú Zooms/Abrir una ventana de OpenStreetMap en la posición actual y Digi3D.NET abrirá en tu navegador favorito el mapa de OpenStreetMap.

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

 

Abre un navegador mostrando Google Maps o Bing Maps en la ubicación de tu ventana de dibujo

Hace mucho tiempo que disponemos de las opciones de abrir una ventana de Google Maps o de Bing Maps en la ubicación de la ventana fotogramétrica, sin embargo no disponíamos de estas opciones para la ventana de dibujo.

Hoy te presentamos estas opciones para la ventana de dibujo.

A partir de hoy puedes abrir un mapa de Google Maps centrado en la posición de la ventana de dibujo mediante la opción del menú Zooms/Abrir una ventana de Google Maps en la posición actual.

Si por el contrario quieres abrir un mapa de Bing Maps, centrado en la posición de la ventana de dibujo, dispones de las siguientes opciones:

  • Zooms/Abrir una ventana de Bing Maps en la posición actual/Vista aérea
  • Zooms/Abrir una ventana de Bing Maps en la posición actual/Vista aérea con etiquetas
  • Zooms/Abrir una ventana de Bing Maps en la posición actual/Carretera
  • Zooms/Abrir una ventana de Bing Maps en la posición actual/Ojo de pájaro
  • Zooms/Abrir una ventana de Bing Maps en la posición actual/Ojo de pájaro con etiquetas

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

Configurando las versiones modernas de Google Earth para que sean compatibles con Digi3D.NET

El 31 de agosto de 2010 Google avisó en su blog de Google Maps que abandonaban el soporte de la API COM de Google Earth, y eso significa que en versiones próximas de su programa eliminarían el soporte de esa API, por lo tanto ya no se podría controlar por programas externos como Digi3D.NET.

Sin embargo hemos tenido que esperar 7 años a que suceda esto. Si instalas la última versión de Google Earth o de Google Earth Pro, Digi3D.NET te muestra un mensaje de error si ejecutas cualquiera de las órdenes que ordenan a Google Earth que se mueva a una determinada coordenada.

Sin embargo aún se puede haciendo dos cosas:

  • Después de investigar nos hemos dado cuenta de que han quitado el soporte pero parcialmente. Han quitado la compatibilidad COM del programa pero a medias pues aún permiten utilizar una técnica denominada Automatización COM, así que hemos cambiado el código del Proxy para controlar Google Earth (puedes ver el código fuente en nuestro repositorio de código fuente en GitHub) para utilizar Automatización COM.
  • Hay que forzar a Google Earth a que se registre para que aplicaciones de terceros como Digi3D.NET puedan acceder a su capacidad de automatización.

La primera tarea ya la hemos hecho nosotros en la última versión de Digi3D.NET. La segunda sin embargo no podemos hacerla nosotros por ti, de modo que si quieres activar Google Earth para que pueda ser controlado, tienes que realizar los siguientes pasos:

  1. Abre una consola de DOS como administrador.
  2. Ejecuta el siguiente comando si tienes instalada la versión normal de Google Earth:
    cd C:\Program Files (x86)\Google\Google Earth\client
  3. Ejecuta el siguiente comando si tienes instalada la versión Pro de Google Earth:
    cd C:\Program Files (x86)\Google\Google Earth Pro\client
  4. Ejecuta el siguiente comando para forzar a que Google Earth se registre:
    googleearth.exe /RegServer

Y ya está. A partir de este momento puedes controlar Google Earth con Digi3D.NET.

Puedes ver un vídeo en el que te mostramos los pasos a continuación: