База знаний LinxCloud Services

Расширение Postgis для PostgreSQL

Дополнения БД могут существенно расширить функциональность базы как сервиса. Например, добавить мониторинг, географические объекты, криптографию.

Установка расширений проводятся в личном кабинете Linx Cloud. Для этого перейдите в раздел «Базы данных» —> «Инстансы баз данных».

Нажмите на базу данных, в которую необходимо установить расширения. Перейдите на вкладку «Расширения» и нажать на кнопку «Добавить».

В открывшимся окне выберите необходимые расширения и нажмите «Добавить».

После начнется установка расширений и они появятся в списке установленных.

 

Расширение Postgis

PostGIS — расширение объектно-реляционной СУБД PostgreSQL предназначенное для хранения в базе географических данных. PostGIS включает поддержку пространственных индексов R-Tree/GiST и функции обработки геоданных, а также опциональные расширения для работы с адресами и топологией.

После добавления этого расширения в базу можно работать с ней специализированными запросами. Полный перечень запросов и другую полезную информацию можно прочитать на официальном ресурсе.

Доступные виды геометрических объектов

Вам доступны: point, line, polygon, multipoint, multiline, multipolygon, and geometrycollections (точка, линия, полигон, мультиточка, мультилиния, мультиполигон и геометрическая коллекция). Они определены в формате Well Known Text Open GIS с расширениями XYZ, XYM, XYZM.

Как построить пространственный запрос?

Чтобы построить пространственный запрос, вы должны создать таблицу со столбцом типа geometry, который будет содержать ваши ГИС-данные. Соединитесь с вашей базой данных с помощью PSQL и выполните SQL:

             CREATE TABLE gtest ( ID int4, NAME varchar(20) ); SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);

Если не получилось добавить столбец геометрии, то, вероятно, вы не загрузили функции и объекты PostGIS в свою базу данных. Смотрите инструкцию по установке.

Далее, вы можете вставлять геометрию в таблицу с помощью SQL-команды insert. Объект ГИС будет форматирован согласно формату well-known text Консорциума OpenGIS:

INSERT INTO gtest (ID, NAME, GEOM) VALUES ( 1, 'Первая геометрия', GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1) );

Подробную информацию о других объектах ГИС можно посмотреть в справочнике объектов. Просмотр ваших ГИС-данных в таблице:

             SELECT id, name, AsText(geom) AS geom FROM gtest;

Результат должен выглядеть примерно так:

id | name | geom ---+------------------+-----------------------------        1 | Первая геометрия | LINESTRING(2 3,4 5,6 5,7 8)       (1 row)

Как вставить объект ГИС в базу данных?

Так же, как вы строите другие запросы к базе данных, используя SQL-запрос для получения значений, функций, логических тестов.

При построении пространственных запросов следует учитывать:

  • существует ли пространственный индекс, которым можно воспользоваться;
  • нужно ли произвести сложные вычисления на большом числе геометрий.

Чаще всего вам будет нужен «оператор пересечения» (&&), который проверяет пересекаются ли границы объектов. Польза оператора && заключается в том, что он может использовать пространственный индекс, если он существует. Это ускорит выполнения запроса.

Кроме того, вы можете использовать пространственные функции, такие как Distance(), ST_Intersects(), ST_Contains() and ST_Within() и другие для сужения результатов поиска. Большинство пространственных запросов включают тест на индекс и тест на пространственную функцию. Тест индекса полезен тем, что ограничивает число проверок значений теми, которые могут попасть в требуемый набор. Далее используются пространственные функции для окончательной проверки условия.

             SELECT id, the_geom FROM thetable              WHERE              the_geom && 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'              AND              _ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');

Таблица дополнений

Название Описание
Нормализатор адресов.
Нормализатор адресов для США.
Дополнение для работы с TIGER (Topologically Integrated Geographic Encoding and Referencing system).
postgis_topology
Дополнение для работы с топологией — вершинами, гранями, полигонами и т.д.
Дополнение для поиска кратчайшего пути.

Параметры, применимые в инфраструктуре Linx Cloud:

Название Описание
database
Перечень баз данных, на которых нужно развернуть расширение. Удаление баз данных из этого списка для установленного расширения не поддерживается.
extension_list
Список дополнений, которые надо включить (по умолчанию пусто). Удаление параметров из этого списка для установленного расширения не поддерживается.
Что вас интересует?
Получить промокод
остались вопросы?

Закажите консультацию специалиста

заказать тест-драйв
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!