Escolar Documentos
Profissional Documentos
Cultura Documentos
es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
1 En el caso que tuviésemos instalado el programa cygwin, tendremos que eliminar de la variable de entorno
PATH la ruta a los binarios de este programa. Para acceder a las variables de entorno, desde un explorador de
archivos, pulsar el botón derecho del ratón sobre MiPC, y en Propiedades/Opciones Avanzadas/Variables de
entorno.
1
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
En la nueva ventana señalamos “Install as a service2” para que arranque Postgres cuando
arranca el sistema. También indicamos un nombre de usuario y contraseña que añadirá al
sistema si no existe y con el que se ejecutará la base de datos. Podemos poner, por ejemplo,
"postgres" como usuario, y "postgres" como contraseña. Le damos a Siguiente.
2 Para ver los servicios instalados en windows xp ir a Panel de control -> Rendimiento y mantenimiento-
>Herramientas Administrativas -> Servicios. Aunque la instalación crea el servicio automáticamente para
que se inicie al arrancar la máquina, en el caso que falle, habrá que comprobar que el servicio está en
estado “iniciado” y que se arranca “automáticamente”.
2
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
3
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
4
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
5
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Conceptos básicos
Illustration 6: Herramienta de administración pgAdmin III
6
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Windows XP
Crearemos una nueva base de datos empleando la plantilla que viene por defecto,
template_postgis. El uso de esta plantilla nos garantiza que la instancia de base de datos
creada tendrá todos los objetos de postGIS (las tablas geometry_columns y spatial_ref_sys,
funciones, tipos de datos, casts, ...)
El primer paso es ejecutar la herramienta pgAdmin3 conectándonos con el usuario
“postgres”. Sobre el icono “Bases de datos” , botón derecho del ratón Nueva Base de Datos
...
7
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Usuario: postgres
Password: postgres
Host(máquina): localhost
Puerto: 5432
Esquema: public
Empezaremos esta parte de la práctica creando una nueva vista en gvSIG. Tras ello
cargamos el shapefile limitesadminandalucia.shp que encontraremos en el directorio
“data/españa/andalucia/municipiosAndal.shp” del cdrom. (Vista -> Añadir Capa ->
Archivo)
8
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
9
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Tras este paso, aparecerá un cuadro de diálogo donde especificaremos los parámetros de
conexión a la base de datos que comentábamos al principio de este capítulo.
Tras cargar los datos en postGIS, el programa nos preguntará si deseamos cargar la capa
recién creada en la vista. Responderemos afirmativamente a esta cuestión con la finalidad
de ver la tabla recién creada.
11
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Esquemas
Hasta ahora hemos visto el concepto de instancia de base de datos y plantilla, además de
éstos, veremos que una base de datos puede tener varios esquemas que son los que
realmente contienen las tablas, procedimientos, etc ... Por defecto, cuando creas una base de
datos se crea el esquema “public”.
12
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Práctica libre: modificar la variable “search_path” del usuario postgres de forma que
acceda por defecto a un esquema distinto al “public”. Comprobar que al cargar un
shapefile con el comando “shp2pgsql” la tabla se guarda en el nuevo esquema. Volver a
ejecutar el comando indicando en esta ocasión la ruta completa a la tabla con la sintaxis
Illustration 13: Creación de esquemas con pgAdminIII
“esquema.tabla”, guardar la tabla en el esquema “public”.
Roles y privilegios
Hasta el momento hemos empleado el DBA (postgres) como usuario para realizar todas las
operaciones en la bases de datos. Sin embargo, esto no es recomendable ya que este usuario
tiene privilegios totales sobre cualquier objeto de la base de datos. En una organización, lo
más habitual es que exista un conjunto de usuarios que tiene ciertos privilegios sobre
ciertos objetos de la base de datos. En esta parte de la práctica veremos cómo añadir roles
(usuarios o grupos de usuarios) y otorgar privilegios a dichos roles.
13
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
4 Los checkbox que aparecen son privilegios especiales del rol que no son heredados por los miembros de
ese rol.
14
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
15
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
5 Es importante dar permisos en esta tabla ya que las aplicaciones cliente, como gvSIG, consultan esta tabla
para averiguar datos referentes a las tablas que contienen cartografía.
16
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Además, para el grupo de editores deberemos dar todos los permisos en la secuencia de la
tabla (limitesadminandalucia) ya que para crear nuevos elementos en la tabla se necesita el
uso de dicha secuencia.
17
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
una conexión con el usuario “consultorX”. Deberá de visualizarse sin problemas. Tras ello
seleccionaremos la capa y la pondremos en edición para añadir una carretera, gvSIG
indicará un error que confirma nuestras sospechas, “consultorX” no tiene privilegios para
modificar el objeto “limitesadminandalucia”.
La segunda comprobación será poner en edición la capa “limitesadminandalucia” para
añadir un elemento pero en este caso con el usuario “editorX”. No deberá dar problemas al
terminar la edición.
Práctica libre: probar a modificar algún parámetro. Por ejemplo, se puede cambiar el
puerto al 6432 y probar a conectarnos con gvSIG.
6 En linux este fichero está en el direcotorio /etc/postgres y tiene permisos para el usuario y grupo
“postgres”. Para modificarlo desde pgAdminIII deberás tener permisos de escritura.
18
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Copias de seguridad
Aunque existen varios métodos para hacer copias de seguridad (física, lógica, física online,
...), en este punto nos centraremos en las copias de seguridad lógicas de una instancia de
base de datos con pgAdminIII.
Para realizar la copia de seguridad nos situamos con el ratón encima de la base de datos, en
nuestro ejemplo “postgis”, y con el botón derecho seleccionamos “Resguardo”. Nos
aparecerá un cuadro de diálogo dónde seleccionaremos el fichero en el que se volcará los
datos y otros parámetros.
Si todo el proceso ha sido correcto nos aparecerá un mensaje indicando algo como: “El
proceso retornó el código de salida 0”
19
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
20
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Funciones openGIS
PostGIS implementa la especificación SFA que define un esquema SQL para el acceso a
información georreferenciada en una base de datos relacional. En esta especificación se
definen una serie de operaciones básicas sobre geometrías, cómo deben almacenarse en la
base de datos, etc ...
Veamos mediante una serie de ejercicios algunas de estas funciones y las posibilidades del
lenguaje de acceso a bases de datos SQL7.
Emplearemos la base de datos “postgis” que hemos estado utilizando durante toda la
práctica y el programa para ejecutar sentencias SQL de pgadmin. Para poder ejecutar una
sentencia SQL seleccionamos con el ratón la instancia de base de datos deseada y elegimos
en el menú “Herramientas -> Herramientas para Consulta”
7 En los ejercicios emplearemos funciones estádar del lenguaje SQL, propias del estándar openGIS y
funciones específicas de PostGIS.
21
Geog. Diego J. Padrón – diego.padron@uah.es – http://www.geogra.uah.es/~diego
Desarrollo de Servidores de mapas con software libre
El carácter distribuido de la Información Espacial
Ejercicios
1. ¿Cuántas municipios hay?
select count(*) from limitesadminandalucia
2. ¿Cuales son los distintos tipos de limitesadminandalucia?
select distinct(cod_ent) from limitesadminandalucia
3. ¿Qué tipo de geometrías representa las limitesadminandalucia?
select distinct(geometryType(the_geom)) from limitesadminandalucia
4. Ver en formato WKT la carretera con identificador único 10.
select asText(the_geom) from limitesadminandalucia where gid=10
5. Ver en formato WKB la carretera con identificador único 10.
select asBinary(the_geom) from limitesadminandalucia where gid=10
6. Obtener los identificadores únicos de las limitesadminandalucia que están dentro del
rectángulo formado por las coordenadas minX=450000, minY=4050000,
maxX=500000, maxY=4100000
select gid FROM limitesadminandalucia WHERE
the_geom && setSRID('BOX3D(450000 4050000, 500000 4100000)'::box3d, 23030)
7. Añadir una nueva carretera que cruza en línea recta desde el punto 450000, 4050000
al 500000, 4100000 y es del tipo 'V10'
insert into limitesadminandalucia(the_geom,cod_ent) values
(GeomFromText('MULTILINESTRING((450000 4050000, 500000
4100000))','23030'),'v10')
8. Obtener el centro de la carretera recién creada.
select astext(centroid(the_geom)) from limitesadminandalucia where cod_ent='v10'
22