Creacion De Bases Con Postgis
PostGIS es una extensión a PostgreSQL que permite el manejo de variables geográficas y geométricas. Nos permite guardar diversos tipos de datos especializados y realizar operaciones de geoestadística.
A continuación veremos como instalarla en nuestro servidor, instalar la extensión en nuestra base de datos y crear tablas para el manejo de información georreferenciada.
A lo largo del camino hablaremos de algunas cosas necesarias de geometría y geodesia que son importantes para comprender como funciona PostGIS.
Instalación en el servidor
Para instalar PostGIS en Ubuntu, podemos hacer lo siguiente si ya existe una instalación PostgreSQL.
$ sudo apt install postgis postgresql-10-postgis-2.5
Para instalar Postgres y PostGIS en la Mac
$ brew install postgres
$ brew install postgis
Instalar la extensión en el servidor
Dentro de nuestra base de datos vamos a correr el siguiente comando:
> create extension postgis;
> create extension postgis_topology;
Creación de tablas con tipos de datos de PostGIS
Para crear tablas con tipos de datos de PostGIS los comandos son los siguientes: Primero creamos una tabla normal con todos los datos que no tengan tipo PostGIS, los IDs, nombres, etcétera. Posteriormente alteramos las tablas con los tipos de datos geográficos o geométricos que necesitemos.
> create table countries(
country_id serial,
country_name text,
country_ISO_SIMB varchar(3)
);
> select addgeometrycolumn('countries', 'country_poly', 4326, 'POLYGON', 2);
Ahora vamos a ver que significan cada uno de estos campos:
- El primer campo es el nombre de la tabla
- El segundo es el nombre de la columna que vamos a añadir
- El tecero es el código del geoide utilizado para representar la geometría, esto lo revisaremos un poco mas adelante.
- El cuarto es el tipo de geometría que vamos a utilizar
- El quinto es el número de dimensiones que se van a usar para representar la geometría
Geoides y representaciones de la tierra
El geoide es la forma de la tierra representada como una función matemática, una superficie suave e irregular cuya forma resulta de la distribución desigual de la masa en y bajo la superficie de la tierra. Una cualidad importante del geoide es que es una superficie equipotencial a la gravedad y la fuerza centrífuga que actúan sobre la tierra y los oceános. La superficie del geoide es irregular, al contrario que el elipsoide de referencia, pero, es considerablemente mas suave que la superficie física de la tierra. Aunque la Tierra tiene saltos tan altos como 8848 metros y tan bajos como 11,034, la desviación del elipsoide varia en +85 en Islandia y -106 en el sur de la india. Menos de 200m del total.
El geoide de referencia se denomina EGM96.
LA forma del geoide se aproxima mediante una serie de armónicos esféricos. El mejor conjunto que se tiene hasta el momento es EGM96 (Earth Gravity Model 96), determinado a través de un proyecto colaborativo liderado por la NGA (National Geospatial Intelligence Agency).
Dato geodético o sistema geodético
El dato geodético es un sistema coordenado y un conjunto de puntos de referencia utilizado para localizar lugares sobre la superficie terrestre. Una definición aproximada del nivel del mar es el datum WGS 84.
Tipos de datos y geometrías en PostGIS
Los tipos básicos de datos en PostGIS, son:
- POINT
- LINESTRING
- POLYGON
- MULTIPOINT
- MULTILINESTRING
- MULTIPOLYGON
- GEOMETRYCOLLECTION
Los 3 primeros tipos son básicos y definen puntos, líneas y regiones, los demás son colecciones de los anteriores. Es importante saber que las columnas se definen en las tablas en un paso aparte a las columnas convencionales de Postgres.
SELECT AddGeometryColumn(varchar 'schema', varchar 'table', varchar 'column',
integer 'srid', varchar 'type', integer 'dimension', boolean use_typmod=true);