GeoPackage

Spectrum Spatial es compatible con el proveedor de datos GeoPackage para Windows y Linux. GeoPackage es una extensión espacial para la tecnología de la base de datos SQLite. GeoPackage estándar, adquirido por OGC, permite que diferentes tablas, sus relaciones y los metadatos relevantes estén auto contenidos en un solo archivo. Esto es útil para grandes conjuntos de información y para trabajar en grupos de caracteres y con limitaciones de tamaño de datos en MapInfo Professional.

Spectrum Spatial treats GeoPackage as a read-write data source.

Cumplimiento con las especificaciones de GeoPackage

La compatibilidad de Spectrum Spatial para GeoPackage se diseñó para que cumpla lo más posible con las especificaciones del OGC. Sin embargo, otras implementaciones compatibles (ya sea para leer, escribir o crear) podrían no cumplir estas especificaciones.

Spectrum Spatial considera que una tabla de GeoPackage cumple si:

  • incluye una tabla gpkg_spatial_ref_sys como se define en el Requisito 10 de las especificaciones del OGC
  • incluye una tabla gpkg_contents como se define en el Requisito 13
  • contiene tablas o vistas actualizables con funciones vectoriales, y dichas tablas o vistas de función tienen una columna con el tipo INTEGER con PRIMARY KEY AUTOINCREMENT como se define en el Requisito 29.
  • implementa índices espaciales en las columnas de geometría de la tabla de función, como se define en los Requisitos 70, 71 y 72
    Nota: Aunque no es obligatorio, se recomienda un índice RTree para evitar problemas de rendimiento.

Acceder a los datos en GeoPackage

Un archivo de GeoPackage tiene una extensión .gpkg y es, básicamente, una base de datos que contiene tablas. Para acceder a los datos de GeoPackage con Spectrum Spatial, cree una conexión con nombre asignado de sistema de archivos mediante Spatial Manager. Una conexión a un archivo de GeoPackage es una ruta, como TAB y shapefiles. Después de crear la conexión, puede crear tablas con nombre asignado que la usen. Debe usar las tablas con nombre asignado de GeoPackage de la misma manera que lo haría con las tablas con nombre asignado de cualquier otro proveedor de datos. Una tabla GeoPackage debe contar con un índice espacial para trabajar con Spectrum Spatial. Los datos de muestra para GeoPackage están disponibles en la carpeta /Samples/NamedTables en el repositorio (WorldGeoPackageTable). La versión anterior de Map Uploader (para las versiones de MapInfo Pro anteriores a la 16.0) no es compatible con GeoPackage. Requiere permisos de lectura y escritura en la carpeta principal de un archivo GeoPackage para abrir la base de datos GeoPackage.

Tipos de datos admitidos

El proveedor de fuente de datos GeoPackage sigue las mismas reglas que JDBC genérico cuando se asigna un tipo de JDBC no espacial al sistema de tipo Spectrum Spatial. Se consulta la tabla gpkg_geometry_columns para el nombre de la columna espacial y el sistema de coordenadas.

Los tipos de datos de geometría y geografía son los datos espaciales equivalentes a los tipos de datos compatibles de Spectrum Spatial: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon y GeometryCollection.

Clave principal

The GeoPackage specification identifies the column in the table that serves as the primary key. This column will be marked as read-only since it is an auto-increment column.

Soporte para insertar, actualizar y eliminar

Insert, update and delete operations are supported on a GeoPackage data source provider. El modo de diario Registro de escritura anticipada (WAL) de SQLite se utiliza para permitir a GeoPackage la lectura y escritura simultánea con estas limitaciones:

  • Todos los procesos que utilizan una base de datos deben estar en la misma computadora del host; WAL no funciona en un sistema de archivos de red.
  • No es posible abrir las bases de datos de WAL con la función de solo lectura. El proceso de apertura debe contar con permisos de escritura para el archivo de memoria compartido del índice wal "-shm" asociado con la base de datos (si ese archivo existe), u otro acceso de escritura en el directorio que contiene el archivo de la base de datos si el archivo "-shm" no existe.

Para obtener más información sobre WAL, entre lo que se incluye sus ventajas y limitaciones, consulte http://www.sqlite.org/wal.html.

MI SQL Optimizations

GeoPackage es compatible con las mismas funciones y operadores no espaciales que el proveedor de origen de datos de JDBC genérica, junto con el operador espacial EnvelopesIntersect.

For more information see the appendix Delegación a proveedores de fuente de datos.

Volatilidad

Para Geopackage es cualquier modificación al esquema de la tabla, como agregar o eliminar una columna o cambiar un índice en una columna. Si cambió, Spectrum Spatial eliminará de la memoria caché los metadatos sobre la tabla y volverá a cargarla antes de continuar con la operación de acceso a datos. Consulte Volatilidad de la fuente de datos para obtener más información.

GeoPackage y MAPINFO_MAPCATALOG

El proveedor de datos GeoPackage en Spectrum Spatial no usa un MAPINFO_MAPCATALOG. Esto tiene varias consecuencias:
  • Las geometrías leídas desde una tabla de GeoPackage no tienen estilo y se mostrarán como una capa en blanco y negro en el mapa. Si necesita estilos, use un tema de remplazo.
  • Las tablas XY no se pueden crear desde una tabla de GeoPackage. Para crear una tabla XY desde una tabla en una base de datos SQLite, cree una tabla genérica basada en JDBC y con nombre. Por ejemplo, establezca una conexión en Spatial Manager con una cadena como jdbc:sqlite:c:\data\sample.gpkg siguiendo las instrucciones en Creación de una conexión. Luego, cree una tabla XY siguiendo las instrucciones en Crear una tabla XY.

Compatibilidad con sistema de coordenadas

GeoPackage es compatible con un sistema de referencia espacial (SRS) cartesiano cuando el SRID es -1 y con un SRS geográfico cuando el SRID es 0. Su una tabla de GeoPackage tiene un SRID de -1, use indicaciones de columna para definir un SRS cartesiano en la tabla con nombre asignado. Si el SRID es 0, use indicaciones de columna para definir un SRS geográfico. Si estas indicaciones de columna no se configuran o si esto se hace incorrectamente, el sistema arrojará una excepción. Estas indicaciones de columna deben agregarse manualmente a una definición de tabla con nombre asignado, mediante WebDAV o un editor de texto para agregar un atributo <DBDataSourceMetadata> al archivo XML:

Para un SRS cartesiano:

<DBDataSourceMetadata>
  <FeatureGeometryAttribute srsName="epsg:3857">geom</FeatureGeometryAttribute>
</DBDataSourceMetadata>
Para un SRS geográfico:
<DBDataSourceMetadata>
  <FeatureGeometryAttribute srsName="epsg:4326">geom</FeatureGeometryAttribute>
</DBDataSourceMetadata