Hace un par de meses Ivan Mincik publicó un visor de PostGIS para pgAdmin usando las librerías de QGIS para Python. He tomado su código fuente para agregar un par de funcionalidades al visor: ahora las capas se cargan en la misma aplicación y se visualizan las coordenadas del cursor y la escala.
For English version click here.
NOTA: Hay una versión más reciente de este plugin, puedes conseguirla en este enlace.
Ivan Mincik creó un plugin para pgAdmin 3 que funciona además como un visor de capas de PostGIS de línea de comandos. El visor puede ser útil para aquellos que administran bases de datos espaciales PostgreSQL/PostGIS a través de pgAdmin 3.
No se intenta dotar de mayores funcionalidades al visor, puesto que probablemente lo que busca un administrador de bases de datos espaciales desde pgAdmin 3 es visualizar las capas almacenadas y conocer a grandes rasgos la escala y las coordenadas asociadas a los datos. En todo caso, si se requieren más funcionalidades, el visor podría extenderse empleando toda la potencia de Python y de las librerías de QGIS.
El visor permite visualizar tablas y vistas de bases de datos espaciales. A continuación se muestra cómo instalarlo y cómo usarlo desde la terminal y desde pgAdmin 3.
PRERREQUISITOS
Python, PyQt4, PyQGIS y libqt4-sql-psql.
Cómo instalar prerrequisitos en Windows: Ver blog.
Cómo instalar prerrequisitos en Ubuntu/Linux: Para QGIS, ver página oficial de descargas. Para los demás programas usar apt-get o Synaptic.
DESCARGAS
Para Ubuntu/Linux descargar el archivo postgis_viewer.py
Para Windows descargar postgis_viewer.py y adicionalmente postgis_viewer.bat
CÓMO USAR EL VISOR DESDE LA TERMINAL DE COMANDOS
En Ubuntu/Linux, dar permisos de ejecución:
$ sudo chmod 755 postgis_viewer.py
Ejecutar el archivo definiendo parámetros:
$ postgis_viewer.py -h localhost -U postgres -W secreto -s public -t pais -d geodb &
Si se ejecuta de nuevo el comando con otra tabla, esta se carga al visor previamente abierto:
$ postgis_viewer.py -h localhost -U postgres -W secreto -s public -t rios -d geodb
En Windows:
Asegurarse de tener las librerías de QGIS cargadas y ejecutar en una terminal de comandos:
$ c:\\Python25\\python.exe postgis_viewer.py -h localhost -U postgres -W secreto -s public -t pais -d geodb &
INSTALACIÓN COMO PLUGIN EN pgAdmin3 (PostgreSQL 8.4)
En Ubuntu/Linux:
Copiar el archivo postgis_viewer.py a una de las carpetas de la variable de entorno PATH, por ejemplo, a /usr/bin/
$ sudo cp postgis_viewer.py /usr/bin/
Definir permisos de ejecución sobre el archivo:
$ sudo chmod 755 /usr/bin/postgis_viewer.py
Copiar las siguientes líneas al archivo /usr/share/pgadmin3/plugins.ini (si el archivo no existe, debe crearse):
Title=View PostGIS layer
Command=postgis_viewer.py -h $$HOSTNAME -p $$PORT -U $$USERNAME -W $$PASSWORD -d $$DATABASE -s $$SCHEMA -t $$OBJECTNAME
Description=View PostGIS layer
Platform=unix
ServerType=postgresql
Database=Yes
SetPassword=Yes
En Windows:
Copiar los archivos postgis_viewer.py y postgis_viewer.bat a la carpeta C:/Archivos de programa/PostgreSQL/8.4/bin/
Editar el archivo C:/Archivos de programa/PostgreSQL/8.4/pgAdmin III/plugins.ini agregando las siguientes líneas:
Title=View PostGIS layer
Command="$$PGBINDIR\\postgis_viewer.bat" -h "$$HOSTNAME" -p "$$PORT" -U "$$USERNAME" -W "$$PASSWORD" -d "$$DATABASE" -s "$$SCHEMA" -t "$$OBJECTNAME"
Description=View PostGIS layer
KeyFile=$$PGBINDIR\\postgis_viewer.bat
Platform=windows
ServerType=postgresql
Database=Yes
SetPassword=Yes
El archivo postgis_viewer.bat se encarga de definir las variables de entorno del paquete OSGeo4W (Qt, Python, QGIS) para posteriormente ejecutar el archivo postgis_viewer.py En el archivo .bat se da por hecho que OSGeo4W está instalado en C:/ y que la ruta para acceder a PostgreSQL es C:/Archivos de programa/PostgreSQL/8.4/ Si se presentara algún inconveniente, se deben revisar dichas rutas.
NOTA: Estas instrucciones están enfocadas en PostgreSQL 8.4 y pgAdmin 1.10. Desconozco el funcionamiento de los plugins en versiones superiores, el cual segun entiendo, ha sido modificado. Cuando sea oportuno actualizaré el post para mostrar cómo configurarlo en PostgreSQL 9.0. En todo caso, es bienvenido cualquier comentario sobre el funcionamiento del visor en PostgreSQL 9.0 y versiones recientes de pgAdmin.
REFERENCIAS
- Ivan Mincik’s PostGIS Viewer: https://github.com/imincik/QgsPostGIS-Viewer
- Send and receive a signal between 2 Qt applications: http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications.?p=176716#post176716
- Single Application: http://www.qtcentre.org/wiki/index.php?title=SingleApplication
Comentarios recientes