Leitfaden zur Verwendung von postgis
postgis
ist ein Georaumerweiterungsmodul für PostgreSQL, das Geometrie- und Georaumtypen und -funktionen bereitstellt, wodurch PostgreSQL Georaumdaten speichern und abfragen kann. In diesem Artikel wird ausführlich beschrieben, wie man postgis
in ServBay installiert und verwendet.
Installation von postgis
ServBay enthält das postgis
Erweiterungsmodul bereits, Sie müssen es nur in der Datenbank aktivieren. Hier sind die Schritte zur Aktivierung von postgis
:
Verbindung zur PostgreSQL-Datenbank herstellen:
bashpsql -U your_username -d your_database
1Erweiterung erstellen:
sqlCREATE EXTENSION postgis;
1Installation verifizieren:
sql\dx
1
Konfiguration von postgis
Nach der Aktivierung von postgis
können Sie Georaumdatentypen erstellen und verwalten sowie verschiedene Georaumfunktionen verwenden.
Erstellung von Georaum-Tabellen
Hier ist ein Beispiel, wie Sie eine Tabelle mit Georaumdaten erstellen.
Tabelle erstellen:
sqlCREATE TABLE locations ( id SERIAL PRIMARY KEY, name VARCHAR(100), geom GEOMETRY(Point, 4326) );
1
2
3
4
5Beispieldaten einfügen:
sqlINSERT INTO locations (name, geom) VALUES ('Location A', ST_GeomFromText('POINT(116.4074 39.9042)', 4326)), ('Location B', ST_GeomFromText('POINT(121.4737 31.2304)', 4326));
1
2
3
Erstellung von Georaum-Indizes
Um die Abfrageleistung zu verbessern, wird empfohlen, Indizes für die Georaumspalte zu erstellen.
- GIST-Index erstellen:sql
CREATE INDEX idx_geom ON locations USING GIST (geom);
1
Verwendung von postgis für Georaum-Abfragen
Hier sind einige häufig verwendete Georaum-Abfragebeispiele.
Entfernung abfragen
- Entfernung zwischen zwei Punkten abfragen:sql
SELECT ST_Distance( ST_GeomFromText('POINT(116.4074 39.9042)', 4326), ST_GeomFromText('POINT(121.4737 31.2304)', 4326) );
1
2
3
4
Enthaltung abfragen
- Abfragen, ob ein Punkt in einem bestimmten Bereich liegt:sql
SELECT name FROM locations WHERE ST_Contains( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom );
1
2
3
4
5
Nachbarschaft abfragen
- Orte in der Nähe eines bestimmten Punktes abfragen:sql
SELECT name FROM locations ORDER BY geom <-> ST_GeomFromText('POINT(116.4074 39.9042)', 4326) LIMIT 5;
1
2
3
Verwendung von postgis für Georaum-Analysen
postgis
bietet eine Vielzahl von Georaum-Analysefunktionen, hier sind einige häufig verwendete Analysefunktionen.
Pufferanalyse
- Puffer erstellen:sql
SELECT ST_Buffer(geom, 0.01) FROM locations WHERE name = 'Location A';
1
Schnittstellenanalyse
- Schnittstelle zwischen zwei Geometrien abfragen:sql
SELECT ST_Intersection( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom ) FROM locations WHERE name = 'Location A';
1
2
3
4
Vereinigung
- Mehrere Geometrien vereinen:sql
SELECT ST_Union(geom) FROM locations;
1
Visualisierung von Georaum-Daten
Sie können verschiedene GIS-Tools (wie QGIS) oder Web-Mapping-Dienste (wie Leaflet, OpenLayers) verwenden, um Georaum-Daten in postgis
zu visualisieren.
Verwendung von QGIS
Verbindung zur PostgreSQL-Datenbank herstellen:
- Öffnen Sie QGIS
- Wählen Sie "Datenquellenverwaltung" -> "PostGIS"
- Geben Sie die Datenbankverbindungsdaten ein und verbinden Sie sich
Georaum-Daten laden:
- Wählen Sie die zu ladende Tabelle oder Ansicht aus
- Klicken Sie auf die Schaltfläche "Hinzufügen"
Verwendung von Leaflet
- Web-Karte erstellen:html
<!DOCTYPE html> <html> <head> <title>Leaflet PostGIS Beispiel</title> <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> </head> <body> <div id="map" style="width: 600px; height: 400px;"></div> <script> var map = L.map('map').setView([39.9042, 116.4074], 10); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // Marker aus PostGIS-Daten hinzufügen var marker = L.marker([39.9042, 116.4074]).addTo(map) .bindPopup('Location A') .openPopup(); </script> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Zusammenfassung
postgis
ist ein leistungsfähiges Georaumerweiterungsmodul, das durch einfache Konfiguration und Nutzung eine effiziente Speicherung und Abfrage von Georaumdaten in PostgreSQL ermöglicht. ServBay enthält das postgis
Erweiterungsmodul bereits, folgen Sie einfach den Schritten in diesem Artikel zur Installation und Konfiguration. Durch die Verwendung verschiedener Georaumabfragen und Analysefunktionen können Sie Georaumdaten besser nutzen und Ihre Anwendungen durch zuverlässige Datenbankunterstützung verbessern.