Räumliche Tabelle erstellen und Daten einfügen
Nachdem Sie nun eine räumliche Datenbank haben, können Sie Tabellen zum Speichern geografischer Daten erstellen. In diesem Schritt erstellen Sie eine cities-Tabelle und fügen die Koordinaten einiger wichtiger Städte ein.
Sie sollten sich immer noch in der psql-Shell befinden, verbunden mit der Datenbank spatial_db.
Erstellen Sie zunächst eine Tabelle namens cities. Diese Tabelle wird eine Standard-id und einen name sowie eine location-Spalte vom Typ GEOMETRY enthalten.
Verständnis von GEOMETRY(Point, 4326)
GEOMETRY: Dies ist der grundlegende PostGIS-Datentyp zum Speichern räumlicher Merkmale.
Point: Dies gibt an, dass die Geometriespalte nur Punkte speichert. Andere Typen sind LINESTRING und POLYGON.
4326: Dies ist der Spatial Reference System Identifier (SRID). SRID 4326 entspricht WGS 84, dem Standardkoordinatensystem, das von GPS und Google Maps verwendet wird.
Führen Sie den folgenden Befehl aus, um die Tabelle zu erstellen:
CREATE TABLE cities (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
location GEOMETRY(Point, 4326)
);
Sie sehen die Bestätigung:
CREATE TABLE
Fügen Sie als Nächstes Daten in die cities-Tabelle ein. Sie verwenden die Funktion ST_GeomFromText, um Well-Known Text (WKT)-Darstellungen von Punkten in Geometrieobjekte umzuwandeln. Das Format ist POINT(Längengrad Breitengrad).
INSERT INTO cities (name, location) VALUES
('New York', ST_GeomFromText('POINT(-74.0060 40.7128)', 4326)),
('London', ST_GeomFromText('POINT(-0.1278 51.5074)', 4326)),
('Tokyo', ST_GeomFromText('POINT(139.6917 35.6895)', 4326));
Die Ausgabe zeigt an, dass drei Zeilen eingefügt wurden:
INSERT 0 3
Um zu überprüfen, ob die Daten korrekt eingefügt wurden, können Sie die Tabelle abfragen. Verwenden Sie die Funktion ST_AsText, um das Geometrieobjekt wieder in ein für Menschen lesbares Textformat umzuwandeln.
SELECT id, name, ST_AsText(location) FROM cities;
Die Ausgabe sollte die gerade eingefügten Daten anzeigen:
id | name | st_astext
----+----------+-----------------------------
1 | New York | POINT(-74.006 40.7128)
2 | London | POINT(-0.1278 51.5074)
3 | Tokyo | POINT(139.6917 35.6895)
(3 rows)
Sie haben erfolgreich eine räumliche Tabelle erstellt und diese mit Daten gefüllt.