Archivos Mensuales: mayo 2015

KML pasa a ser un ciudadano de primera categoría en Digi3D.NET

Existen cuatro tipos de importadores/exportadores de archivos de dibujo en Digi3D.NET

  • Los importadores que permiten tanto importar como exportar y que podemos abrir directamente desde el cuadro de diálogo de Nuevo proyecto (como por ejemplo el importador de archivos .bind)
  • Los importadores que permiten tanto importar como exportar y que no podemos abrir directamente desde el cuadro de diálogo de nuevo proyecto (como por ejemplo el importador de archivos .xyz)
  • Los importadores que únicamente permiten importar entidades (como por ejemplo el importador de valores separados por comas o .csv)
  • Los importadores que únicamente permiten exportar (como por ejemplo el exportador de .kml).

Podríamos decir que los importadores que aparecen en el primer grupo son ciudadanos de primera categoría dentro de Digi3D.NET, ya que no solo importan y exportan, sino que además aparecen en el cuadro de diálogo de Nuevo proyecto, lo que significa que los podemos abrir y modificar sus entidades directamente.

Los del segundo grupo únicamente pueden cargarse como archivos de referencia o únicamente podemos importar sus entidades mediante la orden IMPORTAR o crearlos mediante la orden EXPORTAR, estos podríamos decir que son ciudadanos de segunda categoría.

Los del tercer grupo únicamente saben importar y no tienen la capacidad de exportar, serían ciudadanos de tercera categoría.

Y por último los del tercer grupo, que únicamente saben exportar.

Hasta hoy el importador de .kml pertenecía a este último grupo, pero eso acaba de cambiar. Hemos modificado el importador con los siguientes cambios:

  • Ahora permite importar entidades.
  • Ahora aparece en el cuadro de diálogo de Nuevo Proyecto, lo que significa obviamente que podemos abrir un archivo .kml y modificar sus entidades, moverlas, eliminarlas, copiarlas…
  • Hemos modificado el sistema de referencia de coordenadas de importador/exportador para hacerlo compatible con el indicado en el estándar .KML que puedes leer en http://www.opengeospatial.org/standards/kml/. Hasta ahora el sistema de referencia de coordenadas asociado con el exportador de .kml era el geográfico 3D: WGS 84. Los sistemas de referencia de coordenadas geográficos 3D tienen siempre la Z elipsoidal, y según el estándar la coordenada Z no es elipsoidal, sino que es ortométrica referida al sistema de referencia de coordenadas EGM96, de modo que ahora el sistema de referencia de coordenadas asociado a los archivos .kml es: WGS 84 + EGM96 geoid height. El sistema 2D (WGS 84) está modificado pues el orden de las coordenadas es Longitud/Latitud en vez de Latitud/Longitud.

Si eliminas una entidad, el comportamiento es idéntico que al trabajar con archivos .bind: las entidades en realidad no se eliminan, sino que se marcan como eliminadas, de modo que podemos utilizar las órdenes RECUPERA o RECUPERA_COD para recuperar entidades eliminadas. Google Earth no entiende de entidades marcadas como eliminadas, de modo que si abres con Google Earth un archivo con entidades eliminadas, estas se visualizarán. Para eliminarlas completamente y que no aparezcan en Google Earth, tienes que comprimir el archivo de dibujo.

¿Quieres saber cómo se marcan como eliminadas las entidades en el archivo .kml?
Te lo mostramos en el blog de desarrollo de Digi3D, en la entrada Marcando entidades eliminadas en archivos .kml

Los archivos de configuración y tablas ahora se muestran en HTML

Hemos añadido una nueva funcionalidad a los archivos de configuración y a los distintos tipos de tablas de Digi3D.NET que va a hacer mucho más amigables estos archivos a los usuarios.

Hace muchos años comenzamos con la migración de archivos de tablas a formato .XML:

  • La migración comenzó en el año 2000 con Digi3D 2000 en el que los archivos de alias (que son los archivos que dan nombres a las órdenes) ya estaban en .XML.
  • Después fue Digi3D 2007 que introdujo muchos cambios, entre ellos pasar de las antiguas tablas Digi.tab al nuevo formato Digi.tab.xml, el archivo de menús menu.xml y la incorporación de los archivos .orientation.xml.
  • En Digi3D.NET ya solo quedaban por transformar a .XML los archivos de teclas y añadimos esos cambios.

El problema de los archivos .XML es que los navegadores los muestran tal y como están escritos, y no son fácilmente interpretables por el usuario tal y como puedes ver en este recorte de una tabla de códigos:

<?xml version="1.0" encoding="utf-8"?>
<digitab xmlns:odt="http://schemas.digi21.net/DigiNG/DigiTab/StyleOldDigiTab/v1.0" xmlns:iobind="http://schemas.digi21.net/DigiNG/IO/bind/v1.0" xmlns:iobin="http://schemas.digi21.net/DigiNG/IO/bin/v1.0" xmlns:iodgn="http://schemas.digi21.net/DigiNG/IO/dgnv8/v1.0" xmlns:iodwg="http://schemas.digi21.net/DigiNG/IO/dwg/v1.0" xmlns:iocsv="http://schemas.digi21.net/DigiNG/IO/csv/v1.0" xmlns:iokml="http://schemas.digi21.net/DigiNG/IO/kml/v1.0" xmlns:ioshp="http://schemas.digi21.net/DigiNG/IO/ShapeFile/v1.0" xmlns:ioGeomedia="http://schemas.digi21.net/DigiNG/IO/Geomedia/v1.0"  bgColor="0 0 0" colorUnknown="127 127 127" colorSnap="0 0 255">
    <codes>
        <code name="010123" description="Límite provincial" tags="" type="1" command="" helpFile="" table="" conditions="" print="1" streamMode="0">
            <representation style="1" color="15" color-stereo="15" width="1" width-stereo="1" print-color="15" print-width="0.010000" fontTT="Arial" weightTT="0" italic="0" />
            <io>
                <iobin:transform code="010123"/>
...

Salta a la vista que este formato no es muy cómo para personas que no sepan .XML

El 21 de septiembre de 2011 publiqué en el Blog de desarrollo de Digi3D.NET una manera de hacer que las tablas de códigos se pudieran imprimir Imprimir la configuración de teclado, pero para realizar esa tarea era necesario modificar el archivo de teclas y crear un archivo de transformación, y eso obviamente requería de nuevo tener conocimiento de XML, y además si el usuario realizaba una modificación sobre el archivo de configuración de teclas, había que volverlo a modificar manualmente para poderlo mostrar en forma de tabla.

Acabamos de modificar Digi3D.NET para que genere de forma automática archivos .XML con formato auto-contenido, de forma que si ahora abres (únicamente con Firefox y con Google Chrome -no lo he probado con Microsoft Edge aún, pero definitivamente con Internet Explorer no funciona) cualquier archivo, éste se muestre de una forma bonita para el usuario.

A continuación tienes una captura de pantalla de Firefox mostrando una tabla de códigos Digi.tab.xml, el archivo de configuración de teclas por defecto (ambos instalados en la carpeta %ProgramData%\Digi3D.NET\Tablas) y uno de los archivos de alias (que se instalan en %ProgramFiles%\Digi21.NET\Digi3D.NET\es-ES)

Firefox mostrando digitabFirefox mostrando teclasmnuFirefox mostrando archivo de alias