Crear una Tabla Espacial e Insertar Datos
Ahora que tiene una base de datos espacial, puede crear tablas para almacenar datos geográficos. En este paso, creará una tabla cities e insertará las coordenadas de algunas ciudades importantes.
Todavía debería estar en el shell psql, conectado a la base de datos spatial_db.
Primero, cree una tabla llamada cities. Esta tabla tendrá un id y name estándar, junto con una columna location de tipo GEOMETRY.
Entendiendo GEOMETRY(Point, 4326)
GEOMETRY: Este es el tipo de dato fundamental de PostGIS para almacenar características espaciales.
Point: Esto especifica que la columna de geometría solo almacenará puntos. Otros tipos incluyen LINESTRING y POLYGON.
4326: Este es el Identificador del Sistema de Referencia Espacial (SRID). El SRID 4326 corresponde a WGS 84, el sistema de coordenadas estándar utilizado por GPS y Google Maps.
Ejecute el siguiente comando para crear la tabla:
CREATE TABLE cities (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
location GEOMETRY(Point, 4326)
);
Verá la confirmación:
CREATE TABLE
A continuación, inserte datos en la tabla cities. Utilizará la función ST_GeomFromText para convertir representaciones de texto bien conocidas (Well-Known Text - WKT) de puntos en objetos de geometría. El formato es POINT(longitud latitud).
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));
La salida indica que se insertaron tres filas:
INSERT 0 3
Para verificar que los datos se insertaron correctamente, puede consultar la tabla. Utilice la función ST_AsText para convertir el objeto de geometría de nuevo a un formato de texto legible por humanos.
SELECT id, name, ST_AsText(location) FROM cities;
La salida debería mostrar los datos que acaba de insertar:
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)
Ha creado con éxito una tabla espacial y la ha poblado con datos.