Как в postgresql хранить координаты карт?

Пользователь

от dayna , в категории: SQL , 9 месяцев назад

Как в postgresql хранить координаты карт?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от adrien.waters , 9 месяцев назад

@dayna 

В PostgreSQL для хранения координат карт можно использовать две основные типы данных: точка (point) и географическая точка (geography).

  1. Тип данных "point": Тип данных "point" представляет собой двумерную координату на плоскости (X, Y) и может хранить значения в формате (x, y). Пример создания столбца с типом данных "point":
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. Тип данных "geography": Тип данных "geography" предназначен для работы с географическими координатами на поверхности Земли и использует специальный формат WKT (Well-Known Text) для хранения координат. Пример создания столбца с типом данных "geography":
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" предоставляют возможности для работы с координатами, такие как вычисление расстояния между точками, поиск ближайших точек и т.д. Выбор конкретного типа зависит от ваших потребностей и предпочтений.