Comenzando con postgis

Instalación desde la fuente (con Postgres 9.1 o superior)

Esta guía es explícitamente para PostgreSQL 9.1 o superior en máquinas Linux. Utiliza la función de extensiones de postgres que mejorará en gran medida la importación de extensiones a una instalación de postgres existente. Si tiene que trabajar con una versión anterior de postgres, consulte las documentaciones oficiales.

Resolver dependencias

PostGIS es un proyecto complejo que tiene varias dependencias. Para continuar con la configuración manual y el procedimiento de compilación, deberá resolver estas dependencias e instalar los siguientes paquetes manualmente o mediante los administradores de paquetes.

Requerimientos mínimos

  • PostgreSQL 9.1 o superior. Es importante que instale la base de datos, incluidos los encabezados del servidor, que generalmente se encuentran en los paquetes dev del administrador de paquetes de su repositorio.
  • El compilador GNU C gcc.
  • GNU hacer. Para completar el proceso de construcción.
  • Proy4. Una biblioteca de proyección, para transformaciones de coordenadas.
  • GEOS. Una biblioteca de geometría, que implementa descripciones de características y geometrías simples. Se recomienda la versión 3.5 o superior para utilizar funciones más nuevas como ST_ClipByBox2D y ST_Subdivide.
  • GDAL, versión 1.9 o superior. Una biblioteca que implementa formatos de datos abstractos para datos geoespaciales basados ​​en vectores y ráster.
  • [LibXML2][8], versión 2.5 o superior. Una biblioteca para trabajar con XML, XSLT y DTD.
  • [JSON-C][9], versión 0.9 o superior. Una biblioteca para crear resultados en formato JSON

Requisitos opcionales

  • [GTK][10] (requiere GTK+2.0, 2.8+) para compilar shp2pgsql-gui.
  • [SFCGAL][11], versión 1.1 (o superior) podría usarse para proporcionar funciones de análisis avanzadas 2D y 3D adicionales a PostGIS.
  • [PCRE][12]. Una biblioteca para la coincidencia de patrones de expresiones regulares utilizando la sintaxis de Perl 5. Esta biblioteca es necesaria si desea trabajar con el [Estandarizador de direcciones][13].
  • [Unidad CU][14]. Una utilidad de prueba unitaria, necesaria para las pruebas de regresión.
  • Se requiere [DocBook][15] (xsltproc) para crear la documentación.
  • Se requiere [DBLatex][16] para construir la documentación en formato PDF.
  • Se requiere [ImageMagick][17] para generar las imágenes utilizadas en la documentación.

Obtener las fuentes

Para obtener el código fuente, descargue el último tarball:

wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz

o use el repositorio SVN oficial:

svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev

Configuración

Si obtuvo las fuentes a través de SVN, puede preparar el script de configuración con:

./autogen.sh

Para configurar el proceso de compilación para su máquina específica, ejecútelo en la carpeta del proyecto:

./configure

Hay varios parámetros opcionales para el paso de configuración. Consulte la [documentación oficial][18] para obtener instrucciones detalladas, esto generalmente es opcional y solo para servidores que usan instalaciones no predeterminadas.

Construir

Una vez que el paso de configuración haya finalizado con éxito, se creará un archivo MAKE. Para iniciar el proceso de compilación, ejecute:

make

La última salida debe ser:

"PostGIS was built successfully. Ready to install."

A partir de la versión 1.4.0, todas las funciones tienen comentarios generados a partir de la documentación. Si desea instalar estos comentarios en sus bases de datos espaciales más tarde, ejecute el comando que requiere docbook.

make comments

Instalación

Instale todas las extensiones con:

make install

Las extensiones de PostGIS se compilan e instalan automáticamente si utiliza PostgreSQL 9.1 o superior. Puede instalar las extensiones necesarias manualmente, si tiene una configuración diferente.

En la carpeta del proyecto:

cd extensions
cd postgis
make clean
make
make install

cd ..
cd postgis_topology
make clean
make
make install

cd ..
cd postgis_sfcgal
make clean
make
make install

cd ..
cd address_standardizer
make clean
make
make install
make installcheck

cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck

Si desea instalar las extensiones manualmente en una máquina diferente, copie los siguientes archivos de la carpeta extensions en la carpeta PostgreSQL/share/extension del destino. Para cada extensión:

scp extensions/[EXTENSION]/sql/*.sql [email protected]:[POSTGIS_PATH]/share/extension

donde [EXTENSION] es la extensión seleccionada (postgis, postgis_topology, postgis_sfcgal, address_standardizer, postgis_tiger_geocoder) y [POSTGIS_PATH] es la ruta de instalación de PostGIS en su máquina de destino.

Verificando la Instalación

Si no tiene un servicio de base de datos postgres en ejecución, [primero configure su base de datos postgres][19]. Conéctese a la base de datos, usando:

su postgres -c psql

Para verificar que las extensiones sean accesibles, ejecute las siguientes consultas en una sesión de psql:

SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';

La salida debería verse así:

             name             | default_version | installed_version
------------------------------+-----------------+-------------------
 address_standardizer         | 2.3.2dev        | 2.3.2dev
 address_standardizer_data_us | 2.3.2dev        | 2.3.2dev
 postgis                      | 2.3.2dev        | 2.3.2dev
 postgis_sfcgal               | 2.3.2dev        |
 postgis_tiger_geocoder       | 2.3.2dev        | 2.3.2dev
 postgis_topology             | 2.3.2dev        |

(6 rows)

Para realizar una prueba posterior a la instalación en profundidad, ejecute el siguiente comando en su carpeta de proyecto:

make check

Esto se ejecutará a través de varias comprobaciones y pruebas usando la biblioteca generada contra una base de datos PostgreSQL real.

4: https://www.wikiod.com/es/makefile/primeros-pasos-con-el-archivo-make#Makefile básico 5: http://trac.osgeo.org/proj/ 6: http://trac.osgeo.org/geos/ 7: http://trac.osgeo.org/gdal/wiki/DownloadSource [8]: http://xmlsoft.org/downloads.html [9]: https://github.com/json-c/json-c/releases [10]: https://www.gtk.org/ [11]: https://github.com/Oslandia/SFCGAL [12]: http://www.pcre.org [13]: http://postgis.net/docs/manual-2.3/Address_Standardizer.html [14]: http://cunit.sourceforge.net/ [15]: http://www.docbook.org/ [16]: http://dblatex.sourceforge.net/ [17]: http://www.imagemagick.org/ [18]: http://postgis.net/docs/manual-2.3/postgis_installation.html [19]: https://wiki.postgresql.org/wiki/Detailed_installation_guides

Un “Hola Mundo” geoespacial

En este ejemplo, configuraremos una base de datos geoespacial, importaremos datos de 2 fuentes diferentes y veremos los resultados en una aplicación llamada QGIS. Esta guía está escrita explícitamente para máquinas Linux, si opera en otra plataforma, es posible que algunos comandos o rutas no funcionen como se esperaba.

Para poder ver los datos importados usaremos una aplicación llamada QGIS. Si no tiene esta aplicación, instálela primero, si desea utilizar otro visor o aplicación geográfica (como ArcGIS), puede omitir la instalación de QGIS.

Nuestras fuentes serán los Distritos de la Asamblea del Estado de la Ciudad de Nueva York y la Base de datos de mapas de calles LION de la Ciudad de Nueva York. Descargue los archivos apropiados de las ubicaciones vinculadas. También debe echar un vistazo a la sección Metadatos del material, ya que le brinda información sobre qué sistema de referencia de coordenadas utilizan estos archivos.

Para comenzar, cree una carpeta de trabajo “nycgis”, copie los archivos descargados en la ubicación y descomprima los archivos.

mkdir nycgis
cd nycgis
cp ~/Downloads/nyad_16d.zip .
unzip ~/Downloads/nyad_16d.zip
cp ~/Downloads/nylion_16d.zip .
unzip  ~/Downloads/nylion_16d.zip

En la carpeta “nycgis” ahora debería tener 2 carpetas: “nyad_16d”, “lion” con varios archivos.

Cuando se trabaja con datos geográficos, es de vital importancia conocer el sistema de referencia de coordenadas (CRS) de sus datos de origen y de sus datos de salida final. En las secciones de Metadatos de las ubicaciones vinculadas anteriores (Metadatos: Distritos de Asamblea, Metadatos: Base de datos LION), encontrará que el CRS para ambos archivos es EPSG:2263, un sistema de coordenadas utilizado para hacer referencia al noreste de EE. UU.

Supongamos que queremos usar un CRS diferente en nuestra base de datos. Esto puede tener diferentes razones, por ejemplo, podríamos querer trabajar con una aplicación geográfica basada en web en la base de datos. Un CRS común para este tipo de aplicación es WGS:84 (EPSG:4326).

Para convertir los sistemas de coordenadas usamos una herramienta llamada ogr2ogr que es parte del paquete GDAL. En la carpeta de trabajo, primero creamos 2 carpetas que representan los datos reproyectados y luego convertimos nuestros datos.

mkdir nyad_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326

mkdir nylion_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326

Tenga en cuenta que solo usamos el archivo llamado: “a0000000d.gdbtable” de LION-Database para nuestros propósitos. La sintaxis del comando ogr2ogr es la siguiente:

ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]

Ahora tenemos 2 shapefiles, proyectados en el CRS correcto. Para usar los datos en nuestra base de datos, debemos convertir los archivos de formas a declaraciones SQL. Para ello utilizamos una herramienta llamada shp2pgsql. En el directorio de trabajo ejecute los siguientes comandos:

shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql
shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql

Los archivos nyad_4326.sql y ny_streets_4326.sql ahora están listos para usar en postgis. Para continuar e importar los datos, cree una base de datos espacialmente habilitada.

sudo su - postgres
createdb nycgis
psql -d nycgis

En la sesión de psql, ejecute:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

Salga de las sesiones de usuario de psql y postgres con (CTRL+D). E importar los archivos con:

psql -f nyad_4326.sql -d nycgis
psql -f ny_streets_4326.sql -d nycgis

La base de datos nycgis tiene ahora 2 tablas en las que se importaron con éxito las fuentes reproyectadas.

Para verificar esto: abra QGIS

  1. use Capa > Agregar capa > PostGIS-Layer
  2. conectarse a su base de datos
  3. selecciona tus mesas
  4. (opcional) establezca el estilo de las capas recién creadas.

Captura de pantalla de QGIS

Et voilà: ahora tiene una base de datos espacialmente habilitada, con geodatos importados y reproyectados.

Instalación a través del Administrador de paquetes

Arco:

Un paquete oficial de pacman está disponible. Instale el paquete como root, usando:

pacman -S postgis

OpenSuse:

Para usar los repositorios de openSuse para aplicaciones geoespaciales, habilite el Geo-repositorio como raíz:

zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO 

donde [RELEASE] es el número de lanzamiento oficial de su distribución de Suse. Después de esto, puede instalar postgis con:

zypper install postgis

Configuración de una base de datos geoespacial

Para crear una nueva base de datos vacía, ejecútela como usuario de postgres:

createdb [yourdatabase]

Conéctese a la base de datos con una sesión psql:

psql -d [yourdatabase]

En la ejecución de la sesión psql:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

para crear las extensiones geoespaciales necesarias. Una vez hecho esto, la base de datos es una base de datos habilitada geoespacialmente y está lista para usar.