Archivo de la etiqueta: shapefile

Añadida compatibilidad con Esri Projection Engine

Acabamos de añadir a Digi3D.NET la posibilidad de crear sistemas de referencia de coordenadas compatibles con Esri Projection Engine.

Gracias a esta nueva característica, podrás crear archivos Shapefile con sistemas de referencia de coordenadas y que ArcMap los cargue sin problemas.

Puedes activar esta característica mediante la opción del menú Herramientas/Configuración/Sistemas de referencia de coordenadas/Crear cadenas WKT compatibles con, donde nos encontramos con dos opciones:

  • Esri Projection Engine sin incluir código EPSG
  • Esri Projection Engine incluyendo código EPSG
  • OpenGis Coordinate Transformation Service

Si activamos cualquiera de las opciones de tipo Esri Projection Engine y creamos sistemas de referencia de coordenadas horizontales, es decir, con el sistema vertical desconocido, los archivos .PRJ creados por Digi3D.NET serán exactamente iguales a los creados por Esri Projection Engine.

La diferencia entre las dos primeras opciones es que la primera incluye el código EPSG como por ejemplo en el siguiente ejemplo para el sistema WGS84 / UTM Zona 30N:

PROJCS["WGS_1984_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32630]]

y la segunda no lo incluye, como por ejemplo en el siguiente ejemplo para el mismo sistema de referencia de coordenadas:

PROJCS["WGS_1984_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]

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

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.

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:

Exporta tu cartografía a GeoJSON

El formato GeoJSON es un formato de intercambio GIS que cada vez se utiliza en más sistemas de bases de datos espaciales y servicios online.

Acabamos de añadir a Digi3D.NET un exportador nativo a formato GeoJSON de manera que únicamente tienes que ejecutar la orden EXPORTAR y seleccionar el exportador de GeoJSON.

Digi3D.NET creará un archivo con extensión .geojson en el sistema de referencia de coordenadas geográfico 3D (WGS84) para que lo puedas importar inmediatamente en tu base de datos espacial.

Si las entidades tienen asociada información de base de datos, ésta aparecerá también en el archivo GeoJSON.

Puedes validar tu archivo GeoJSON en la página web http://geojson.io. Tan solo tienes que seleccionar la opción Open/File y seleccionar el archivo GeoJSON creado por Digi3D.NET.

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