cuadernos de geomÁtica - integracion postgis 2.0 con gvsig 2.0.02066 y kosmo 2.0.1

22
CUADERNOS DE GEOMÁTICA PRÁCTICA INTEGRACIÓN DEL GESTOR DE BBDD POSTGRESQL INCLUYENDO SU EXTENSIÓN ESPACIAL POSTGIS CON LOS CLIENTES S.I.G. GVSIG Y KOSMO Este primer estudio es necesario y preliminar de cara a poder abordar otro complementario, pero necesariamente posterior de los clientes SIG enumerados. Efectivamente, de cara a la correcta integración de dichos clientes con el gestor de datos PostGIS, elegido por coherencia con estudios previos en I.A.M. realizados por Base de Datos y siendo conocida también el hecho de que su extensión espacial es usada por sistemas cartográficos OGC consolidados. Sólo con este primer estudio es posible abordar con las base y seguridad adecuadas aquél. De ahí su necesidad que ha sido fundamentada a través de los siguientes puntos: Determinación de la versión más evolucionada posible del SGBDE Determinación de las versiones más evolucionadas de los clientes SIG a estudio Problemas y forma de instalación del SGBDE Problemas de integración entre el gestor OGC comentado y los clientes Solución posible a los posibles problemas detectados Comprobación de la viabilidad de la arquitectura software base . Enrique de Dios San Román Ingeniero en Geomática y topografía Ingeniero Técnico en topografía Master en Sistemas de Información Geográfica por la U.P.M.

Upload: enrique-de-dios-san-roman

Post on 01-Dec-2015

134 views

Category:

Documents


1 download

DESCRIPTION

Se estudia en el presente cuaderno la manera de instalar el SGBBDD PosgreSQL con su versión espacial PostGIS, así como las capacidades de los desktop KOSMO y gvSIG para interactuar con dicho gestor, así como las operaciones necesarias para que dicha interacción sea posible debido a las diferencias entre librerías embebidas en los distintos instaladores.

TRANSCRIPT

CUADERNOS DE GEOMÁTICA PRÁCTICA

INTEGRACIÓN DEL GESTOR DE BBDD

POSTGRESQL INCLUYENDO SU

EXTENSIÓN ESPACIAL POSTGIS CON

LOS CLIENTES S.I.G. GVSIG Y KOSMO

Este primer estudio es necesario y preliminar de cara a poder abordar otro

complementario, pero necesariamente posterior de los clientes SIG enumerados.

Efectivamente, de cara a la correcta integración de dichos clientes con el

gestor de datos PostGIS, elegido por coherencia con estudios previos en I.A.M.

realizados por Base de Datos y siendo conocida también el hecho de que su

extensión espacial es usada por sistemas cartográficos OGC consolidados.

Sólo con este primer estudio es posible abordar con las base y seguridad

adecuadas aquél. De ahí su necesidad que ha sido fundamentada a través de los

siguientes puntos:

Determinación de la versión más evolucionada posible del SGBDE

Determinación de las versiones más evolucionadas de los clientes SIG a

estudio

Problemas y forma de instalación del SGBDE

Problemas de integración entre el gestor OGC comentado y los clientes

Solución posible a los posibles problemas detectados

Comprobación de la viabilidad de la arquitectura software base.

Enrique de Dios San Román Ingeniero en Geomática y topografía

Ingeniero Técnico en topografía

Master en Sistemas de Información Geográfica por la U.P.M.

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS - PRELIMINARES

Es importante conocer las páginas principales en la web:

Principal:

http://www.postgresql.org.es/

Descarga:

http://www.enterprisedb.com/products-services-training/pgdownload#windows

(Hay soporte Linux (x32 y x64) , Windows (x32 y x64) y Mac

La versión utilizada para la prueba piloto será:

Base de datos

Postgresql Versión 9.2.4-1 para windows-x64 (Parte del desarrollo se hizo en x64)

Extensión espacial

Postgis 2.0 (incluído en el paquete de descarga de Postgresql)

Cliente de PostgreSQL

phppgAdmin 5.0.4

Datos importantes para la instalación tipo:

UserName/password: postgres/super

Host 127.0.0.1

Puerto/port : 5432

Configuración regional Spanish/Spain

Spatial database name: postgis20

Al final podremos realizar sendos accesos directos a las dos funcionalidades principales

que vamos a usar:

PgAdmin "C:\Program Files\PostgreSQL\9.2\bin\pgAdmin3.exe"

Conversor shapes "C:\Program Files\PostgreSQL\9.2\bin\postgisgui\shp2pgsql-gui.exe"

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS – PANTALLAS INSTALACIÓN

Aquí es importante instalar todos los formatos de acceso externo (programación)

contra el SGBBDD y la extensión PostGIS (2.0 en este caso) y la herramienta phppgadmin.

Aquí irán apareciendo una serie de pantallas simples de instalación que iremos pasando.

Finalmente nos aparecerá una del siguiente tipo

(la clave puede ser cualquiera en nuestro caso hemos elegido “super”)

Pasadas unas pantallas sin complicación alguna terminará la instalación de PostgreSQL.

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS - COMPROBACIÓN

Accederemos a través del acceso directo de pgadmin al cliente de PostgreSQL

Es importante ver que postgis20 y template_postgis_20, esta última es la

plantilla de modelo espacial, que usaremos para generar nuestra primera BBDD espacial.

Para generar una BBDDEE de ejemplo nos situaremos sobre “Bases de Datos” ->

“Nueva Base de Datos” y aparecerá una ventana como la siguiente en la que los elementos

principales serán:

Nombre de la BBDDEE: COSLADA

Propietario: postgres, que es el usuario de la instalación

Tipo de carácter: Juego Spanish_Spain.1252

Codificación: UTF8. Capaz de representar cualquier carácter Unicode. Estándar.

Plantilla: template_postgis_20 (esto es lo que hace que sea una implementación espacial)

Roll: public al que damos todos los privilegios (podríamos generar un usuario concreto)

Hecho esto, veremos que la BBDD generada “COSLADA” tiene implementadas las

características básicas espaciales que precisa para ser BBDDEE (postgis,

postgis_topology).

La manera más sencilla de incorporar datos espaciales para cualquier instalación

en la que se parta de datos SDE o bien de plataformas capaces de exportar su información

al formato de intercambio shape de ESRI es utilizando la herramienta shp2pgsql-gui, que

antes había que manejar a través de consola (cmd), pero que en la versión con la que

trabajamos de postgresql incluye una interface GUI de usuario muy cómoda. Ya dijimos

que era muy útil tener un acceso directo a la misma. Accediendo a la herramienta

tendremos:

Los pasos serán:

Definir la conexión a la BBDDEE

Añadir los ficheros shape que se incorporarán como tablas PostGIS

Importar propiamente

Una vez establecida la conexión tendremos en el log un mensaje de conexión

realizada. En el caso de error, algún parámetro no estará correctamente puesto (la

password que estamos usando sabemos que es “super”). Después seleccionaremos los

shapes a incorporar tal y como se muestra (pulsando add file)

Es importante realizar una revisión del log para ver que no se ha producido ningún

problema en la importación de datos a la BBDDEE “COSLADA”. En el ejemplo contemplado

tenemos geometrías del tipo multistring, multipolygon y point.

Volviendo a la herramienta pgadmin podremos observar que en el esquema

“public” de la BBDD COSLADA, nos deberá de aparecer el conjunto de tablas generado

(CCPP, CONSTRU,CRUCE,MASA,MUNICIPIO…).

También podremos realizar alguna consulta para ver que todo está en orden.

Para realizar un par de consultas SQL espacial podemos en pgAdmin ir a

Herramientas -> Herramientas de consulta. Ahí nos saldrá un cliente en el que podremos

realizar como con DBVisualizer o cualquier otro cliente de BBDD la consulta sobre

PostGRE. Vamos a realizar un par de consultas:

Área total: Calcular la superficie de las parcelas que perteneciendo al código postal 28823

se encuentren en el distrito 3, sección censal 3:

SELECT SUM((ST_AREA (ST_GEOGFROMWKB (P.GEOM)))/10000) FROM PARCELA P, CCPP

C, SSCC S WHERE COD_POSTAL = '28823'AND ST_CONTAINS (C.GEOM, P.GEOM) AND

(DISTRITO= 3 AND SECCION=3) AND ST_CONTAINS (S.GEOM, P.GEOM) ;

Distancia media de los centroides de las secciones censales al centroide de código postal

28821 y que éste contenga a aquellas secciones completamente

SELECT AVG (ST_DISTANCE (ST_GEOGFROMWKB (ST_CENTROID (C.GEOM)),

ST_GEOGFROMWKB (ST_CENTROID (S.GEOM)))) FROM CCPP C, SSCC S WHERE COD_POSTAL

= '28821' AND ST_CONTAINS (C.GEOM, S.GEOM);

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS – COMPATIBILIDAD GVSIG

Versión gvSIG utilizada: 2.0.0.2066 final

Descarga:

Se procede ahora a demostrar que las versiones de PostgreSQL y PostGIS utilizadas

es compatibles o no con las versión estudiada (última disponibles a 16 de Mayo de 2013)

de la herramienta cliente SIG denominada gvSIG.

Accedemos a la pantalla de incorporación de datos a través de Vista -> Añadir capa:

Sólo se carga la tabla. Es incapaz de cargar los datos. Sólo estructura.

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS – COMPATIBILIDAD KOSMO

Versión Kosmo: 2.0.1 (Windows / Linux)

Descarga: http://www.opengis.es/index.php?option=com_docman&task=cat_view&gid=17&Itemid=42

Se procede ahora a demostrar que las versiones de PostgreSQL y PostGIS utilizadas

son compatibles o no con la versión estudiada del cliente SIG denominado Kosmo (última

disponibles a 16 de Mayo de 2013).

En este caso lo primero que tenemos que definir es la proyección de trabajo, en

nuestro caso geográfica sobre elipsoide WGS 84:

Accedemos a la pantalla de incorporación de datos a través de Vista -> Cargar datos

Kosmo, al igual que gvSIG es incapaz de cargar los datos. Sólo la estructura de las tablas.

En este caso además no se nos proporciona información precisa del error generando un

problema con EPSG.

INSTALACIÓN DE POSTGRESQL Y EXTENSIÓN POSTGIS – SOLUCIÓN gvSIG / Kosmo

El problema está en lo siguiente: Hasta la versión 9.1 de PosgreSQL existían algunas funciones espaciales sin el prefijo ST_. A partir de la versión 9.1 esto ha cambiado, de manera que debemos crear la función AsEWKB para que devuelva el valor de la actual función ST_AsEWKB y así con todas las funciones afectadas. Dado que gvSIG y Kosmo utilizan dichas funciones (probablemente las librerías SEXTANTE que incluyen también, aunque este extremo no se ha comprobado, dado que al usarlos dentro de la herramienta la BBDDEE ya incluye las librerías completas) al incorporar en su código jdbc’s con librerías PostgreSQL de versiones anteriores a la 9.1. La solución completa al problema está disponible en www.opengeo.org . Podemos bajarnos la herramienta Open GeoSuite 3.0.2 disponible para Windows y Mac. (Es importante, aunque se trate de otro tipo de aplicaciones y aquí sólo se diga a título informativo, que se encuentra disponible también una serie de librerías SDK que permiten la construcción de herramientas a medida). La solución está disponible con seguridad en la versión 3.0.2 y no antes de la 2.4.5 (instalación comprobada) en la que en la ruta (C:\Program Files (x86)\OpenGeo\OpenGeo Suite\pgsql\9.1\share\contrib\postgis-2.0) podemos ejecutar en la BBDDEE afectada el script de BBDD denominado legacy.sql que corrige los efectos provocados por lo antes expuesto, lo cual sin este script sería un trabajo ímprobo. Así volviendo a realizar los pasos de conexión a PostGIS desde los clientes SIG analizados obtenemos los siguientes resultados: gvSIG

KOSMO

Dando por solucionada así tanto la manera en que debe de instalarse PostgreSQL, PostGIS y los parches a aplicar para compatibilizar la última versión de dicho SGBD con los clientes SIG gvSIG, Kosmo y todos aquellos que no hagan uso de jdbc actual de la versión del sistema de BBDD. El único detalle a destacar entre ambos es que Kosmo discrimina las tablas de plantilla del apartado espacial del propio gestor y por tanto no aparecen en la lista de las seleccionables, mientras que en gvSIG debemos conocerlas para no importarlas, lo cual hace algo más “amigable” la importación desde Kosmo.