15.3. Explorando campos y formatos de datos

15.3.1. Datos Raster

Los datos ráster GIS son matrices de celdas discretas que representan entidades/fenómenos sobre, encima o debajo de la superficie terrestre. Cada celda de la cuadrícula ráster tiene el mismo tamaño y las celdas suelen ser rectangulares (en QGIS siempre serán rectangulares). Los datasets ráster típicos incluyen datos de teledetección, como fotografías aéreas, o imágenes de satélite y datos modelados, como elevación o temperatura.

A diferencia de los datos vectoriales, los datos ráster normalmente no tienen un registro de base de datos asociado para cada celda. Están geocodificados por resolución de píxeles y la coordenada X / Y de un píxel de esquina de la capa ráster. Esto permite que QGIS coloque los datos correctamente en el lienzo del mapa.

El formato GeoPackage es conveniente para almacenar datos ráster cuando se trabaja con QGIS. El popular y poderoso formato GeoTiff es una buena alternativa.

QGIS utiliza información de georeferencia dentro de la capa ráster (por ejemplo, GeoTiff) o un archivo mundial asociado para mostrar los datos correctamente.

15.3.2. Datos Vectoriales

Muchas de las funciones y herramientas disponibles en QGIS funcionan igual, independientemente de la fuente de datos vectoriales. Sin embargo, debido a las diferencias en las especificaciones de formato (GeoPackage, ESRI Shapefile, MapInfo y MicroStation formatos de archivo, AutoCAD DXF, PostGIS, SpatiaLite, Oracle Spatial, MS SQL Server, SAP HANA Spatial bases de datos y muchos más), QGIS puede manejar algunas de sus propiedades de manera diferente. El soporte lo proporcionan los controladores vectoriales GDAL. Esta sección describe cómo trabajar con estas especificidades.

Nota

QGIS admite tipos de entidades (multi)punto, (multi)línea, (multi)polígono, cadena circular, Curva Compuesta, Curva Poligonal, MultiCurva, MultiSuperficie, todos opcionalmente con valores Z y/o M.

También debe tener en cuenta que algunos controladores no admiten algunos de estos tipos de entidades, como Cadena Circular, Curva Compuesta, Curva Poligonal, MultiCurva, MultiSuperficie. QGIS los convertirá.

15.3.2.1. GeoPackage

El formato GeoPackage (GPKG) es independiente de la plataforma, se implementa como un contenedor de base de datos SQLite y se puede utilizar para almacenar datos vectoriales y ráster. El formato fue definido por el Consorcio Geoespacial Abierto (OGC) y fue publicado en 2014.

GeoPackage puede ser usado para almacenar lo siguiente en una base de datos SQLite:

  • entidades vectoriales

  • conjuntos de matrices de teselas de imágenes y mapas ráster

  • atributos (datos no espaciales)

  • extensiones

Desde la versión 3.8 de QGIS, GeoPackage también puede almacenar proyectos de QGIS. Las capas GeoPackage pueden tener campos JSON.

GeoPackage es el formato de datos predeterminado para datos vectoriales en QGIS.

15.3.2.2. Formato de archivo de forma ESRI

El formato de archivo de forma ESRI sigue siendo uno de los formatos de archivo vectorial más utilizados, incluso si tiene algunas limitaciones en comparación con, por ejemplo, GeoPackage y SpatiaLite.

Un conjunto de datos en formato de archivo de forma ESRI consta de varios archivos. Los tres siguientes son requeridos:

  1. archivo contenedor de las geometrías de las entidades .shp

  2. archivo contenedor de los atributos en formato dBase .dbf

  3. archivo del índice .shx

Un conjunto de datos del formato ESRI Shapefile puede también incluir un archivo con una extensión .prj, que contiene información de proyección. Aunque es muy útil tener un archivo de proyección, no es obligatorio. Un conjunto de datos del formato Shapefile puede contener archivos adicionales. Para más detalles vea la `especificación técnica ESRI `<https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf>`_.

GDAL tiene soporte de lectura-escritura para el formato comprimido ESRI Shapefile (shz y shp.zip).

Mejora del rendimiento para conjuntos de datos en formato ESRI Shapefile

Para mejorar el rendimiento del dibujo para un dataset de formato ESRI Shapefile, puede crear un índice espacial. Un índice espacial mejorará la velocidad tanto del zoom como de la panorámica. Los índices espaciales utilizados por QGIS tienen una extensión .qix.

Usa estos pasos para crear un índice:

  1. Carga un conjunto de datos de formato de archivo de forma ESRI (ver El panel Navegador)

  2. Abre el diálogo Propiedades de capa mediante doble-click en el nombre de la capa en la leyenda o con click derecho y eligiendo Propiedades… del menú contextual

  3. En la pestaña Fuente, click en el botón Crear índice Espacial

Problema cargando un archivo .prj

Si carga un conjunto de datos en formato ESRI Shapefile con un archivo .prj y QGIS no puede leer el sistema de referencia de coordenadas de ese archivo, deberá definir la proyección adecuada manualmente en :menuselection:` Propiedades de capa -> Pestaña Fuente` de la capa haciendo click en el botón setProjection Seleccionar CRS. Esto se debe al hecho de que los archivos .prj a menudo no proporcionan los parámetros de proyección completos que se utilizan en QGIS y que se enumeran en el diálogo CRS.

Por la misma razón, si crea un nuevo conjunto de datos en formato ESRI Shapefile con QGIS, se crean dos archivos de proyección diferentes: un archivo .prj con parámetros de proyección limitados, compatible con el software ESRI, y un archivo . qpj, que proporciona todos los parámetros del CRS. Siempre que QGIS encuentre un archivo .qpj, se usará en lugar del archivo .prj.

15.3.2.3. Archivos de Texto delimitado

Los archivos de texto delimitados son muy comunes y se usan ampliamente debido a su simplicidad y legibilidad: los datos se pueden ver y editar en un editor de texto sin formato. Un archivo de texto delimitado son datos tabulares con columnas separadas por un carácter definido y filas separadas por saltos de línea. La primera fila generalmente contiene los nombres de las columnas. Un tipo común de archivo de texto delimitado es un CSV (valores separados por comas), con columnas separadas por comas. Los archivos de texto delimitados también pueden contener información posicional (ver Almacenamiento de información de geometría en archivos de texto delimitados).

QGIS le permite cargar un archivo de texto delimitado como una capa o una tabla ordinaria (ver El panel Navegador o Importando un archivo de texto delimitado). Primero verifique que el archivo cumpla con los siguientes requisitos:

  1. El archivo debe tener una fila de encabezado delimitada de nombres de campo. Esta debe ser la primera línea de los datos (idealmente la primera fila en el archivo de texto).

  2. Si se debe habilitar la geometría, el archivo debe contener los campos que definen la geometría. Estos campos pueden tener cualquier nombre.

  3. Los campos de coordenadas X e Y (si la geometría está definida por coordenadas) deben especificarse como números. El sistema de coordenadas no es importante.

  4. Si tiene un archivo CSV con columnas que no sean cadenas, puede tener un archivo CSVT adjunto (véase la sección Usar archivo CSVT para controlar el formato de campo).

El archivo de datos de puntos de elevación elevp.csv en el conjunto de datos de muestra de QGIS (ver sección :ref:` label_sampledata`) es un ejemplo de un archivo de texto válido:

X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]

Algunas cosas a tener en cuenta sobre el archivo de texto:

  1. El archivo de texto de ejemplo usa ; (punto y coma) como delimitador (se puede usar cualquier carácter para delimitar los campos).

  2. La primera fila es la fila de encabezado. Contiene los campos X, `` Y `` y `` ELEV ``.

  3. No se utilizan comillas (`` «``) para delimitar campos de texto

  4. Las coordenadas X están contenidas en el campo X

  5. Las coordenadas Y están contenidas en el campo Y

Almacenamiento de información de geometría en archivos de texto delimitados

Los archivos de texto delimitados pueden contener información de geometría en dos formas principales:

  • Como coordenadas en columnas separadas (por ejemplo, Xcol, `` Ycol `` …), para datos de geometría de puntos;

  • Como representación de texto conocido (WKT) de geometría en una sola columna, para cualquier tipo de geometría.

Se admiten las funciones con geometrías curvas (Cadena circular, PolígonoCurvo y CurvaCompuesta). A continuación, se muestran algunos ejemplos de tipos de geometría en un archivo de texto delimitado con geometrías codificadas como WKT:

Label;WKT_geom
LineString;LINESTRING(10.0 20.0, 11.0 21.0, 13.0 25.5)
CircularString;CIRCULARSTRING(268 415,227 505,227 406)
CurvePolygon;CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3))
CompoundCurve;COMPOUNDCURVE((5 3, 5 13), CIRCULARSTRING(5 13, 7 15,
  9 13), (9 13, 9 3), CIRCULARSTRING(9 3, 7 1, 5 3))

Los archivos de texto delimitados también admiten coordenadas Z y M en geometrías:

LINESTRINGZ(10.0 20.0 30.0, 11.0 21.0 31.0, 11.0 22.0 30.0)

Usar archivo CSVT para controlar el formato de campo

Al cargar archivos CSV, el controlador GDAL asume que todos los campos son cadenas (es decir, texto) a menos que se le indique lo contrario. Puedes crear un archivo CSVT para indicar a GDAL (y a QGIS) el tipo de datos de las diferentes columnas:

Tipo

Nombre

Ejemplo

Número entero

Integer

4

Boolean

Integer(Boolean)

true

Número decimal

Real

3.456

Fecha

Date (YYYY-MM-DD)

2016-07-28

Tiempo

Time (HH:MM:SS+nn)

18:33:12+00

Fecha y hora

DateTime (YYYY-MM-DD HH:MM:SS+nn)

2016-07-28 18:33:12+00

CoordX

CoordX

8.8249

CoordY

CoordY

47.2274

Point(X)

Point(X)

8.8249

Point(Y)

Point(Y)

47.2274

WKT

WKT

POINT(15 20)

El archivo CSVT es un archivo de texto sin formato de ** UNA línea ** con los tipos de datos entre comillas y separados por comas, por ejemplo

"Integer","Real","String"

Puedes incluso especificar anchura y precisión para cada columna, p.ej.:

"Integer(6)","Real(5.5)","String(22)"

Este archivo es guardado en la misma carpeta que el archivo .csv, con el mismo nombre, pero con extensión csvt.

*Puedes encontrar mas información en GDAL CSV Driver.

Truco

Detectar tipos de campo

En lugar de utilizar un archivo CSVT para indicar los tipos de datos, QGIS ofrece la posibilidad de detectar automáticamente los tipos de campo y cambiar los tipos de campo asumidos.

15.3.2.4. Capas PostGIS

Las capas de PostGIS se almacenan en una base de datos PostgreSQL. Las ventajas de PostGIS son las capacidades de indización espacial, filtrado y consulta. Utilizando PostGIS, las funciones vectoriales como seleccionar e identificar funcionan con mayor precisión que con las capas GDAL en QGIS.

Truco

Capas PostGIS

Normalmente, una capa PostGIS se identifica mediante una entrada en la tabla geometry_columns. QGIS puede cargar capas que no tienen una entrada en la tabla geometry_columns. Esto incluye tanto tablas como vistas. Consulte su manual de PostgreSQL para obtener información sobre cómo crear vistas.

Esta sección contiene algunos detalles sobre cómo QGIS accede a las capas de PostgreSQL. La mayoría de las veces, QGIS simplemente debería proporcionarle una lista de tablas de base de datos que se pueden cargar, y las cargará a pedido. Sin embargo, si tiene problemas para cargar una tabla de PostgreSQL en QGIS, la siguiente información puede ayudarlo a comprender los mensajes de QGIS y brindarle instrucciones para modificar la tabla de PostgreSQL o la definición de vista para permitir que QGIS la cargue.

Nota

Una base de datos PostgreSQL también puede almacenar proyectos QGIS.

Clave primaria

QGIS requiere que las capas de PostgreSQL contengan una columna que se pueda utilizar como clave única para la capa. Para las tablas, esto generalmente significa que la tabla necesita una clave principal o una columna con una restricción única. En QGIS, esta columna debe ser de tipo int4 (un número entero de 4 bytes). Alternativamente, la columna ctid se puede utilizar como clave principal. Si una tabla carece de estos elementos, se utilizará la columna oid en su lugar. El rendimiento mejorará si la columna está indexada (tenga en cuenta que las claves principales se indexan automáticamente en PostgreSQL).

QGIS ofrece una casilla de verificación Seleccionar en id que está activada de forma predeterminada. Esta opción obtiene los identificadores sin los atributos, lo que es más rápido en la mayoría de los casos.

Ver

Si la capa de PostgreSQL es una vista, existe el mismo requisito, pero las vistas no siempre tienen claves primarias o columnas con restricciones únicas. Debe definir un campo de clave principal (debe ser un número entero) en el cuadro de diálogo de QGIS antes de poder cargar la vista. Si no existe una columna adecuada en la vista, QGIS no cargará la capa. Si esto ocurre, la solución es modificar la vista para que incluya una columna adecuada (un tipo de número entero y una clave primaria o con una restricción única, preferiblemente indexada).

En cuanto a la tabla, una casilla de verificación Seleccionar en id está activada de forma predeterminada (consulte más arriba el significado de la casilla de verificación). Puede tener sentido desactivar esta opción cuando utiliza vistas caras.

Nota

Tabla extrerna de PostgreSQL

Las tablas externas de PostgreSQL no son compatibles explícitamente con el proveedor de PostgreSQL y se manejarán como una vista.

Copia de seguridad de base de datos y tabla de estilo de capa de QGIS

Si desea hacer una copia de seguridad de su base de datos PostGIS utilizando los comandos pg_dump y pg_restore, y los estilos de capa predeterminados guardados por QGIS no se pueden restaurar posteriormente, debe configurar la opción XML en DOCUMENT antes del comando de restauración:

  1. Hacer una copia de seguridad PLANA de la tabla layer_style`

  2. Abrir el archivo en un editor de texto

  3. Cambiar la línea SET xmloption = content; a SET XML OPTION DOCUMENT;

  4. Guardar el archivo

  5. Utilice psql para restaurar la table en la nueva base de datos

Filtrar el lado de la base de datos

QGIS permite filtrar funciones que ya están en el lado del servidor. Compruebe Configuración -> Opciones -> Fuentes de datos -> checkbox Ejecute expresiones en el lado del servidor si es posible para hacerlo. Solo las expresiones admitidas se enviarán a la base de datos. Las expresiones que utilicen operadores o funciones no admitidas recurrirán con gracia a la evaluación local.

Tipos de archivos soportados por PostgreSQL

Los tipos de datos admitidos por el proveedor de PostgreSQL incluyen: integer, float, boolean, binary object, varchar, geometry, timestamp, array, hstore y json.

15.3.2.5. Importando Datos en PostgreSQL

Los datos se pueden importar a PostgreSQL/PostGIS utilizando varias herramientas, incluido el complemento DB Manager y las herramientas de línea de comandos shp2pgsql y ogr2ogr.

Administrador de BBDD

QGIS viene con un complemento principal llamado dbManager Administrador de bases de datos. Se puede usar para cargar datos e incluye soporte para esquemas. Consulte la sección Complemento de Administración de BBDD para obtener más información.

shp2pgsql

PostGIS incluye una utilidad llamada shp2pgsql, que se puede utilizar para importar conjuntos de datos en formato Shapefile a una base de datos habilitada para PostGIS. Por ejemplo, para importar un conjunto de datos en formato Shapefile llamado lakes.shp a una base de datos PostgreSQL llamada gis_data, use el siguiente comando:

shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data

Esto crea una nueva capa llamada lakes_new en la base de datos gis_data. La nueva capa tendrá un identificador de referencia espacial (SRID) de 2964. Consulte la sección Trabajar con Proyecciones para obtener más información sobre los sistemas de referencia espacial y las proyecciones.

Truco

Exportando datos desde PostGIS

También hay una herramienta para exportar conjuntos de datos PostGIS a formato Shapefile: pgsql2shp. Se envía dentro de su distribución de PostGIS.

ogr2ogr

Además de shp2pgsql y Administrador de bases de datos, existe otra herramienta para alimentar datos geográficos en PostGIS: ogr2ogr. Es parte de su instalación GDAL.

Para importar un conjunto de datos en formato Shapefile en PostGIS, haga lo siguiente:

ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp

Esto importará el conjunto de datos en formato Shapefile alaska.shp a la base de datos de PostGIS postgis usando el usuario postgres con la contraseña topsecret en el servidor host myhost.de.

Tenga en cuenta que GDAL debe ser construido con PostgreSQL para admitir PostGIS. Puede comprobarlo escribiendo (en nix):

ogrinfo --formats | grep -i post

Si prefiere utilizar el comando COPY de PostgreSQL en lugar del método INSERT INTO predeterminado, puede exportar la siguiente variable de entorno (al menos disponible en nix y osx):

export PG_USE_COPY=YES

ogr2ogr no crea índices espaciales como lo hace shp2pgsl. Debe crearlos manualmente, utilizando el comando SQL normal ** CREATE INDEX ** después, como un paso adicional (como se describe en la siguiente sección Mejorar el rendimiento).

Mejorar el rendimiento

Recuperar entidades de una base de datos PostgreSQL puede llevar mucho tiempo, especialmente en una red. Puede mejorar el rendimiento de dibujo de las capas de PostgreSQL asegurándose de que exista un índice espacial de PostGIS en cada capa de la base de datos. PostGIS admite la creación de un índice GiST (árbol de búsqueda generalizado) para acelerar la búsqueda espacial (la información del índice GiST se toma de la documentación de PostGIS disponible en https://postgis.net).

Truco

Puede utilizar Administrador de BBDD para crear un índice para su capa. Primero debe seleccionar la capa y hacer clic en Tabla-> Editar tabla, ir a la pestaña :menuselection:` Indexes` y hacer click en Añadir índice Espacial.

La sintaxis para crear un índice GiST es:

CREATE INDEX [indexname] ON [tablename]
  USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

Tenga en cuenta que para tablas grandes, la creación del índice puede llevar mucho tiempo. Una vez creado el índice, debe realizar un `` ANÁLISIS DE VACÍO ``. Consulte la documentación de PostGIS (POSTGIS-PROJECT en literatura_y_web) para obtener más información.

El siguiente ejemplo crea un índice GiST:

gsherman@madison:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
gsherman@madison:~/current$

15.3.2.6. Capas SpatiaLite

Si desea guardar una capa vectorial usando el formato SpatiaLite, puede hacerlo siguiendo las instrucciones en Creando nuevas capas desde una capa existente. Seleccione `` SpatiaLite`` como Formato e ingrese ambos :guilabel:` Nombre de archivo` y Nombre de capa.

Además, puede seleccionar `` SQLite`` como formato y luego agregar `` SPATIALITE = YES `` en el campo Opciones personalizadas -> fuente de datos. Esto le dice a GDAL que cree una base de datos SpatiaLite. Consulte también https://gdal.org/drivers/vector/sqlite.html.

QGIS también admite vistas editables en SpatiaLite. Para la gestión de datos de SpatiaLite, también puede utilizar el complemento principal DB Manager.

Si desea crear una nueva capa de SpatiaLite, consulte la sección Crear una nueva capa SpatiaLite.

15.3.2.7. parámetros específicos GeoJSON

Cuando exporting layers a GeoJSON, hay algunas Opciones de Capa disponibles. Estas opciones provienen de GDAL que es responsable de la redacción del archivo:

  • COORDINATE_PRECISION el número máximo de dígitos después del separador decimal para escribir en coordenadas. El valor predeterminado es 15 (nota: para las coordenadas Lat Lon, 6 se considera suficiente). Se producirá un truncamiento para eliminar los ceros finales.

  • RFC7946 por defecto se utilizará GeoJSON 2008. Si se establece en SÍ, se utilizará el estándar RFC 7946 actualizado. El valor predeterminado es NO (por lo tanto, GeoJSON 2008). Ver https://gdal.org/drivers/vector/geojson.html#rfc-7946-write-support para las principales diferencias, en resumen: solo se permite EPSG:4326, otros crs serán transformados, se escribirán polígonos de manera que sigan la regla de la derecha para la orientación, los valores de una matriz «bbox» son [oeste, sur, este, norte], no [minx, miny, maxx, maxy]. Algunos nombres de miembros de extensión están prohibidos en los objetos FeatureCollection, Feature y Geometry, la precisión de coordenadas predeterminada es de 7 dígitos decimales

  • WRITE_BBOX establécelo en SÍ para incluir el cuadro delimitador de las geometrías en el nivel de entidad y colección de entidades

Además de GeoJSON, también hay una opción para exportar a «GeoJSON - Newline Delimited» (ver https://gdal.org/drivers/vector/geojsonseq.html). En lugar de una Colección de Obetos con Objetos, puede transmitir un tipo (probablemente solo Objetos) separados secuencialmente con nuevas líneas.

GeoJSON - Newline Delimited también tiene algunas opciones de capa específicas disponibles:

  • COORDINATE_PRECISION ver arriba (igual que para GeoJSON)

  • RS al iniciar registros con el carácter RS = 0x1E. La diferencia es cómo se separan las entidades: solo por un carácter de nueva línea (LF) (JSON delimitado por nueva línea, geojsonl) o también anteponiendo un carácter separador de registros (RS) (dando GeoJSON Text Sequences, geojsons). Por defecto a NO. Los archivos reciben la extensión .json si no se proporciona la extensión.

15.3.2.8. Capas espaciales de SAP HANA

Esta sección contiene algunos detalles sobre cómo QGIS accede a las capas de SAP HANA. La mayoría de las veces, QGIS simplemente debería proporcionarle una lista de tablas y vistas de la base de datos que se pueden cargar, y las cargará a pedido. Sin embargo, si tiene problemas para cargar una tabla o vista de SAP HANA en QGIS, la siguiente información puede ayudarlo a comprender la causa raíz y ayudarlo a resolver el problema.

Identificación de características

Si desea utilizar todas las capacidades de edición de características de QGIS, QGIS debe poder identificar sin ambigüedades cada característica en una capa. Internamente, QGIS usa un entero con signo de 64 bits para identificar características, mientras que el rango negativo está reservado para propósitos especiales.

Por lo tanto, el proveedor de SAP HANA requiere una clave única que se pueda asignar a un número entero positivo de 64 bits para admitir completamente las capacidades de edición de características de QGIS. Si no es posible crear dicha asignación, aún puede ver las características, pero es posible que la edición no funcione.

Agregar tablas

Al agregar una tabla como capa, el proveedor de SAP HANA usa la clave principal de la tabla para asignarla a una identificación de función única. Por lo tanto, para tener compatibilidad completa con la edición de funciones, debe tener una clave principal para la definición de su tabla.

El proveedor de SAP HANA admite claves principales de varias columnas, pero si desea obtener el mejor rendimiento, su clave principal debe ser una sola columna de tipo INTEGER.

Agregar vistas

Al añadir una vista como capa, el proveedor de SAP HANA no puede identificar automáticamente las columnas que identifican inequívocamente un objeto espacial. Además, algunas vistas son de solo lectura y no se pueden editar.

Para tener soporte completo de edición de características, la vista debe ser actualizable (marque la columna IS_READ_ONLY en la vista del sistema SYS.VIEWS para la vista en cuestión) y debe proporcionar manualmente a QGIS una o más columnas que identifiquen un rasgo. Las columnas se pueden proporcionar usando Layer ► Add Layer ► Add SAP HANA Spatial Layer y luego seleccionando las columnas en la columna Feature id. Para un mejor rendimiento, el valor Feature id debe ser una única columna INTEGER.

15.3.3. Capas que cruzan los 180° de longitud

Muchos paquetes SIG no envuelven las capas con un sistema de referencia geográfica (lat/lon) que cruza la línea de longitud de 180 grados. Como resultado, si abrimos una capa de este tipo en QGIS, podríamos ver dos ubicaciones muy separadas, que deberían aparecer cerca la una de la otra. En Figura 15.27, el pequeño punto en el extremo izquierdo del lienzo del mapa (Islas Chatham) debería estar dentro de la cuadrícula, a la derecha de las islas principales de Nueva Zelanda.

../../../_images/vectorNotWrapping.png

Figura 15.27 Mapa en lat/lon cruzando la línea de longitud de 180

15.3.3.1. Resolver en PostGIS

Una solución consiste en transformar los valores de longitud utilizando PostGIS y la función ST_ShiftLongitude. Esta función lee cada punto/vértice en cada componente de cada característica en una geometría, y cambia su coordenada de longitud de -180..0° a 180..360° y viceversa si está entre estos rangos. Esta función es simétrica, por lo que el resultado es una representación 0..360° de un dato -180..180° y una representación -180..180° de un dato 0..360°.

../../../_images/vectorWrapping.png

Figura 15.28 Cruce de 180° de longitud aplicando la función ST_ShiftLongitude.

  1. Importar datos en PostGIS (Importando Datos en PostgreSQL) usando, por ejemplo, el complemento del Administrador de BBDD.

  2. Utilice la interfaz de línea de comandos de PostGIS para emitir el siguiente comando:

    -- In this example, "TABLE" is the actual name of your PostGIS table
    update TABLE set geom=ST_ShiftLongitude(geom);
    
  3. Si todo salió bien, debería recibir una confirmación sobre la cantidad de funciones que se actualizaron. Entonces podrá cargar el mapa y ver la diferencia (Figure_vector_crossing_map).