Introducció a PostGIS
PostGIS és una extensió de PostgreSQL que afegeix suport per a objectes geogràfics, permetent que la base de dades sigui utilitzada per a aplicacions GIS (Sistemes d'Informació Geogràfica). Amb PostGIS, pots emmagatzemar, consultar i manipular dades espacials de manera eficient.
Conceptes clau
- Geometria: Representació matemàtica d'objectes espacials (punts, línies, polígons).
- SRID (Spatial Reference System Identifier): Identificador que defineix el sistema de coordenades utilitzat per les dades espacials.
- Funcions espacials: Funcions que permeten realitzar operacions sobre dades espacials, com ara calcular distàncies, interseccions, etc.
Instal·lació de PostGIS
Pas 1: Instal·lar l'extensió PostGIS
Pas 2: Verificar la instal·lació
Aquestes comandes haurien de retornar la versió de PostGIS instal·lada.
Creació de taules amb dades geoespacials
Exemple de creació d'una taula amb una columna geomètrica
En aquest exemple, la columna ubicacio
emmagatzema punts amb el sistema de coordenades WGS 84 (SRID 4326).
Inserció de dades geoespacials
Exemple d'inserció d'un punt
INSERT INTO llocs (nom, ubicacio) VALUES ('Torre Eiffel', ST_SetSRID(ST_MakePoint(2.2945, 48.8584), 4326));
Consultes espacials bàsiques
Seleccionar totes les ubicacions
Filtrar per proximitat
Trobar llocs dins d'un radi de 10 km d'un punt donat:
SELECT nom FROM llocs WHERE ST_DWithin( ubicacio::geography, ST_SetSRID(ST_MakePoint(2.2945, 48.8584)::geography, 4326), 10000 );
Funcions espacials comunes
Calcular la distància entre dos punts
SELECT ST_Distance( ST_SetSRID(ST_MakePoint(2.2945, 48.8584)::geography, 4326), ST_SetSRID(ST_MakePoint(2.3522, 48.8566)::geography, 4326) ) AS distancia;
Trobar interseccions
SELECT nom FROM llocs WHERE ST_Intersects( ubicacio, ST_SetSRID(ST_MakePoint(2.2945, 48.8584), 4326) );
Exercicis pràctics
Exercici 1: Crear una taula de polígons
Crea una taula per emmagatzemar polígons que representin àrees geogràfiques.
Exercici 2: Inserir un polígon
Inserir un polígon que representi una àrea específica.
INSERT INTO arees (nom, area) VALUES ('Parc Central', ST_SetSRID(ST_GeomFromText('POLYGON((2.2945 48.8584, 2.2955 48.8584, 2.2955 48.8594, 2.2945 48.8594, 2.2945 48.8584))'), 4326));
Exercici 3: Consultar punts dins d'un polígon
Trobar tots els llocs dins d'un polígon específic.
SELECT nom FROM llocs WHERE ST_Within( ubicacio, (SELECT area FROM arees WHERE nom = 'Parc Central') );
Resum
En aquesta secció, hem après a:
- Instal·lar i verificar PostGIS.
- Crear taules amb columnes geomètriques.
- Inserir i consultar dades geoespacials.
- Utilitzar funcions espacials per a operacions comunes.
Aquestes habilitats són fonamentals per treballar amb dades geoespacials en PostgreSQL, permetent-te desenvolupar aplicacions GIS robustes i eficients.
Curs de PostgreSQL
Mòdul 1: Introducció a PostgreSQL
Mòdul 2: Operacions bàsiques de SQL
Mòdul 3: Consultes SQL avançades
Mòdul 4: Disseny de bases de dades i normalització
Mòdul 5: Funcionalitats avançades de PostgreSQL
Mòdul 6: Optimització i millora del rendiment
- Optimització de consultes
- Estratègies d'indexació
- Analitzant el rendiment de les consultes
- Vacuuming i manteniment
Mòdul 7: Seguretat i gestió d'usuaris
- Rols d'usuari i permisos
- Mètodes d'autenticació
- Encriptació de dades
- Còpia de seguretat i restauració
Mòdul 8: Treballant amb JSON i funcionalitats NoSQL
Mòdul 9: Extensions i eines avançades
- PostGIS per a dades geoespacials
- Cerca de text complet
- Wrappers de dades externes
- PL/pgSQL i altres llenguatges procedimentals