Создание пространственной таблицы и вставка данных
Теперь, когда у вас есть пространственная база данных, вы можете создавать таблицы для хранения географических данных. На этом шаге вы создадите таблицу cities и вставите координаты нескольких крупных городов.
Вы все еще должны находиться в оболочке psql, подключенной к базе данных spatial_db.
Сначала создайте таблицу с именем cities. Эта таблица будет иметь стандартные поля id и name, а также столбец location типа GEOMETRY.
Понимание GEOMETRY(Point, 4326)
GEOMETRY: Это фундаментальный тип данных PostGIS для хранения пространственных объектов.
Point: Указывает, что столбец геометрии будет хранить только точки. Другие типы включают LINESTRING и POLYGON.
4326: Это идентификатор системы пространственных ссылок (SRID). SRID 4326 соответствует WGS 84, стандартной системе координат, используемой GPS и Google Maps.
Выполните следующую команду для создания таблицы:
CREATE TABLE cities (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
location GEOMETRY(Point, 4326)
);
Вы увидите подтверждение:
CREATE TABLE
Далее вставьте данные в таблицу cities. Вы будете использовать функцию ST_GeomFromText для преобразования текстовых представлений точек в формате Well-Known Text (WKT) в объекты геометрии. Формат: POINT(долгота широта).
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));
Вывод указывает, что было вставлено три строки:
INSERT 0 3
Чтобы проверить правильность вставки данных, вы можете выполнить запрос к таблице. Используйте функцию ST_AsText для преобразования объекта геометрии обратно в удобочитаемый текстовый формат.
SELECT id, name, ST_AsText(location) FROM cities;
Вывод должен отобразить только что вставленные вами данные:
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)
Вы успешно создали пространственную таблицу и заполнили ее данными.