Назад к списку постов

Postgres PostGIS, установка, пространственных запросов, sql запросы по по радиусу

Установка и примеры использования PostGIS

PostGIS - это расширение для базы данных PostgreSQL, которое добавляет поддержку географических объектов и функций. Это мощный инструмент, который позволяет выполнять пространственные запросы и анализировать геоданные.

Установка PostGIS

Чтобы установить PostGIS, выполните следующие шаги:

  1. Убедитесь, что у вас установлена база данных PostgreSQL.
  2. Откройте командную строку и выполните команду sudo apt-get install postgis для установки PostGIS на Ubuntu.
  3. После установки выполните команду sudo -u postgres psql для входа в интерактивную оболочку PostgreSQL.
  4. Введите команду CREATE EXTENSION postgis; для создания расширения PostGIS в вашей базе данных.
Примеры использования
Создание таблицы с географическими данными

Чтобы создать таблицу с географическими данными, выполните следующий SQL-запрос:

CREATE TABLE cities (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    location GEOGRAPHY(POINT, 4326)
);
Вставка географических данных

Чтобы вставить географические данные в таблицу, используйте следующий SQL-запрос:

INSERT INTO cities (name, location)
VALUES ('Москва', ST_GeographyFromText('POINT(37.617778 55.751944)'));
Выполнение пространственных запросов

PostGIS позволяет выполнять различные пространственные запросы, например, поиск ближайших объектов или определение площади полигона. Ниже приведен пример запроса на поиск ближайшего города к заданной точке:

SELECT name
FROM cities
ORDER BY location <-> ST_GeographyFromText('POINT(30.315868 59.939095)')
LIMIT 1;
Выполнение пространственных запросов

PostGIS позволяет выполнять различные пространственные запросы, включая поиск объектов в заданном радиусе. Ниже приведен пример запроса на поиск городов, находящихся в радиусе 10 километров от заданной точки:

SELECT name
FROM cities
WHERE ST_DWithin(location, ST_GeographyFromText('POINT(37.617778 55.751944)'), 10000)
ORDER BY location <-> ST_GeographyFromText('POINT(37.617778 55.751944)');

В этом примере, ST_DWithin функция используется для определения объектов, находящихся в пределах заданного радиуса от заданной точки. Значение 10000 представляет расстояние в метрах.

Примечание: Убедитесь, что координаты точки в запросе соответствуют требуемым координатам.

Заключение

PostGIS - мощное расширение для базы данных PostgreSQL, которое обеспечивает поддержку географических данных и функций. Оно открывает широкие возможности для работы с геоданными и выполнения пространственного анализа. Попробуйте установить PostGIS и начать использовать его в своих проектах!

#DevOps #Postgres #postgis

Назад к списку постов Следующий пост

menuзакрыть

начать проект

Заявка отправлена

Спасибо! Заявка отправлена. Свяжемся с вами в течении часа!