Créer une table spatiale et insérer des données
Dans cette étape, vous allez créer une table pour stocker des données spatiales et insérer des exemples de données.
Tout d'abord, connectez-vous à la base de données spatial_db
en utilisant la commande psql
:
sudo -u postgres psql -d spatial_db
Créez une table nommée cities
avec des colonnes pour id
, name
et location
. La colonne location
stockera les données spatiales en tant que type geometry
(géométrie).
CREATE TABLE cities (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
location GEOMETRY(Point, 4326)
);
Cette commande crée une table nommée cities
avec un id
à auto-incrémentation, un name
(nom) pour la ville et une colonne location
pour stocker les coordonnées géographiques de la ville en tant que géométrie de type Point
(Point) en utilisant le SRID (Spatial Reference Identifier) 4326 (WGS 84).
Vous devriez voir la sortie :
CREATE TABLE
Maintenant, insérez des données pour trois villes : New York, Londres et Tokyo.
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));
Cela insère trois lignes dans la table cities
, en utilisant la fonction ST_GeomFromText
pour créer des géométries de type Point
à partir de chaînes Well-Known Text (WKT) représentant les coordonnées de chaque ville.
Vous devriez voir la sortie :
INSERT 0 3
Pour vérifier que les données ont été insérées correctement, interrogez la table :
SELECT id, name, ST_AsText(location) FROM cities;
La sortie devrait ressembler à ceci :
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)
Enfin, quittez le shell psql
:
\q