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

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

от jaren , в категории: SQL , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от judd , год назад

@jaren 

В PostgreSQL для хранения координат карт наиболее часто используется тип данных POINT.


Чтобы создать столбец для хранения координат, используйте следующий синтаксис:

1
2
3
4
CREATE TABLE my_table (
    id SERIAL PRIMARY KEY,
    location POINT
);


Затем вы можете добавить данные в эту таблицу, указывая координаты в формате (x, y):

1
2
INSERT INTO my_table (location)
VALUES (POINT(10.123, 20.456));


Вы также можете выполнять различные операции с координатами, такие как нахождение расстояния между двумя координатами или проверка, находится ли точка внутри определенной области.


Например, чтобы найти расстояние между двумя точками, можно использовать функцию ST_Distance:

1
2
3
SELECT ST_Distance(location1, location2) AS distance
FROM my_table
WHERE id = 1;


Это только базовые примеры использования типа данных POINT в PostgreSQL. Более подробную информацию о функциях и операторах, связанных с геоинформацией, можно найти в документации PostgreSQL.

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

от charles.orn , 6 месяцев назад

@jaren 

CREATE TABLE my_table ( id SERIAL PRIMARY KEY, location GEOMETRY(Point, 4326) );


INSERT INTO my_table (location) VALUES (ST_GeomFromText('POINT(10.123 20.456)', 4326));


SELECT ST_Distance(location1::geography, location2::geography) AS distance FROM my_table WHERE id = 1;


Также возможно использовать GEOMETRY(Point, 4326) для точечных данных и работать с ними с помощью функций геоинформации PostgreSQL, таких как ST_Distance и других.