PostGIS
Objetivos
Instalar PostGIS
Comprender la creación de nuevos objetos geométricos
Inspeccionar las nuevas funciones geométricas y las nuevas tablas geométricas
Conocer las tablas de metadatos spatial_ref_sys y las vistas geometry colums y geography_columns
¿qué es postgis?
PostGIS añade soporte espacial a la base de datos relacional PostgreSQL.
Le da a PostgreSQL la capacidad de almacenar, consultar y manipular datos espaciales
Licenciado con GNU GPL
¿QUÉ ES POSTGIS?
Desarrollado en lenguaje C
Utiliza la librería GEOS (wrapper JTS)
Implementa OGC Simple Feature Access
Instalación
Desde repositorios:
$ sudo apt-get install postgis postgresql-X.X-postgis
Espacialización de la base de datos
Crear una base de datos espacial y definir como plantilla para la creación de bases de datos posteriores
Espacialización de la base de datos
Directorio con archivos para la creación:
cd /usr/share/postgresql/9.1/contrib/postgis-2.0/
Espacialización de la base de datos
Creación de la base de datos template_postgis
Ejecutamos los scripts con el usuario postgres contra la base de datos template_postgis
$ psql -U postgres -d template_postgis -f postgis.sql
$ psql -U postgres -d template_postgis -f spatial_ref_sys.sql
Espacialización de la base de datos
ESPACIALIZACIÓN DE LA BASE DE DATOS
ESPACIALIZACIÓN DE LA BASE DE DATOS
ESPACIALIZACIÓN DE LA BASE DE DATOS
ESPACIALIZACIÓN DE LA BASE DE DATOS
Tabla spatial_ref_sys:
contiene una lista con los sistemas de referencia disponibles
Espacialización de la base de datos
Vista geometry_columns:
catálogo de las columnas espaciales existentes en la base de datos. PostGIS debe buscarse una manera de identificar qué campo contiene geometrías. Esto se hace de manera estándar (OGC) manteniendo un catálogo con la lista de columnas espaciales que existen. Hay que tenerla siempre actualizada
Espacialización de la base de datos
# SELECT postgis_full_version();
Creación de la plantilla
Podremos utilizar la base de datos creada inicialmente como plantilla para la posterior creación de bases de datos espaciales evitando tener que repetir el proceso
CREACIÓN DE LA PLANTILLA
# UPDATE pg_database
SET datistemplate = TRUE
WHERE datname = 'template_postgis';
Creación de la plantilla
# GRANT ALL ON geometry_columns TO PUBLIC;
# GRANT ALL ON geography_columns TO PUBLIC;
# GRANT ALL ON spatial_ref_sys TO PUBLIC;
Creación de la base de datos espacial
# CREATE DATABASE curso TEMPLATE=template_postgis
Creación de tablas espaciales
Creamos la tabla, bien con create table o desde pgAdmin
Creación de tablas espaciales
Definimos campo geométrico:
Usando geometry (typmod):
# alter table [nombre_tabla] add column geom geometry([tipo_geometria], SRID)
O usando el estandar:
# SELECT AddGeometryColumn ('mi_schema','mi_tabla','geom',SRID,'[tipogeometria]',dimension);
Caracteristicas espaciales postgis
Funciones espaciales
Indices espaciales
Funciones espaciales
Una base de datos ordinaria proporciona funciones para manipular los datos en una consulta como concatenación de cadenas, operaciones matemáticas o la extracción de información de las fechas. Una base de datos espacial proporciona un completo juego de funciones para poder realizar análisis con los objetos espaciales: analizar la composición del objeto, determinar su relación espacial con otros objetos, transformarlo, etc.
funciones espaciales
La mayor parte de las funciones espaciales pueden ser agrupadas en una de las siguientes cinco categorías:
Conversión: Funciones que convierten las geometrías a otros formatos externos
Gestión: Tareas administrativas de PostGIS
Recuperación: Obtienen propiedades y medidas de las geometrías.
Comparación: Comparan dos geometrías y obtienen información sobre su relación espacial.
Generación: Generan geometrías a partir de otros tipos de datos.
Índices espaciales
La indexación para tipos de datos estándar que pueden ser ordenados (alfabéticamente o numéricamente) consiste en esencia en ordenar estos registros de manera que sea fácil localizarlos.
Pero en el caso de la información espacial no existe un orden total ya que un polígono puede contener a un punto, cruzarse con una línea, etc. Se ponen en marcha ciertas estrategias para asociar los registros con determinadas partes del territorio que cubren y así poder obtener los registros que se encuentran cerca de una posición dada.
PostgreSQL implementa un algoritmo de indexación espacial denomimado GiST (Generalized Search Tree). PostGIS extiende los índices GiST para que funcionen adecuadamente con los tipos geometry.
PostGIS
By Micho García
PostGIS
- 1,474