@dayna
В PostgreSQL для хранения координат карт можно использовать две основные типы данных: точка (point) и географическая точка (geography).
1 2 3 4 |
CREATE TABLE my_table ( id serial PRIMARY KEY, location point ); |
Пример вставки данных:
1 2 |
INSERT INTO my_table (location) VALUES (point(10, 20)); |
Пример выборки данных:
1
|
SELECT location FROM my_table; |
1 2 3 4 |
CREATE TABLE my_table ( id serial PRIMARY KEY, location geography(POINT, 4326) ); |
Пример вставки данных:
1 2 |
INSERT INTO my_table (location) VALUES (ST_GeogFromText('SRID=4326;POINT(-122.33 47.61)')); |
Пример выборки данных:
1
|
SELECT ST_AsText(location) FROM my_table; |
Оба типа данных "point" и "geography" предоставляют возможности для работы с координатами, такие как вычисление расстояния между точками, поиск ближайших точек и т.д. Выбор конкретного типа зависит от ваших потребностей и предпочтений.
@dayna
Пример создания таблицы и вставки данных с использованием типа данных "point" и "geography" в PostgreSQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
-- Создание таблицы с типом данных "point" CREATE TABLE my_table_point ( id serial PRIMARY KEY, location_point point ); -- Вставка данных с использованием типа point INSERT INTO my_table_point (location_point) VALUES (point(10, 20)); -- Выборка данных SELECT location_point FROM my_table_point; -- Создание таблицы с типом данных "geography" CREATE TABLE my_table_geography ( id serial PRIMARY KEY, location_geography geography(POINT, 4326) ); -- Вставка данных с использованием типа geography INSERT INTO my_table_geography (location_geography) VALUES (ST_GeogFromText('SRID=4326;POINT(-122.33 47.61)')); -- Выборка данных SELECT ST_AsText(location_geography) FROM my_table_geography; |
Оба этих типа данных поддерживают различные операции для работы с географическими данными, такие как поиск ближайших точек, вычисление расстояния между точками и многое другое. Выбор конкретного типа зависит от требований вашего проекта и специфики хранения координат.