Перейти к основному содержимому

postgis. Поддержка геоданных

Версия: 3.1.2.

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: См. раздел «Системные требования» этой статьи.

Схема размещения:

  • ext;
  • topology;
  • tiger;
  • tiger_data.

Расширение PostGIS представляет собой реализацию стандарта OpenGIS на основе стандарта SQL/MM.

Для реализации требований вводятся новые типы данных:

  • geometry;
  • geography;
  • bod2d;
  • box2df;
  • box3d;
  • raster;
  • spheroid.

Добавляются также функции для работы с этими типами.

Функциональное обеспечение позволяет работать с геометрическими, географическими и растерными объектами.

Данные могут быть представлены в двумерной, трехмерной или четырехмерной системе координат.

Расширение PgRouting предоставляет дополнительную функциональность к PostGIS, позволяющую определять расстояние между географическими объектами.

Тип данных geography предусматривает указание SRID (Spatial Reference Identifier) системы SRS (Spatial Reference System).

Системные требования

В поставку продукта как библиотеки третьей стороны (3rd party) добавляются расширения:

  • postgis;
  • postgis_topology;
  • postgis_sfcgal;
  • postgis_raster;
  • postgis_tiger_geocoder;
  • address_standardizer;
  • address_standardizer_data_us;
  • pgrouting.

Системные пакеты, необходимые для работы расширений:

  1. Для ALT 8 SP (8.4):

    • libtiff5;
    • json-c;
    • libpcre16;
    • libmpfr6.

    Команда установки:

    sudo apt-get install libtiff5 json-c libpcre16 libmpfr6
  2. Для RedHat 7:

    • libtiff;
    • json-c;
    • pcre.

    Команда установки:

    sudo yum install libtiff json-c pcre

Для работы расширений требуются библиотеки:

  • GDAL;
  • PROJ;
  • SFCGAL;
  • cgal;
  • geos.

Доработка

В Pangolin включены инструменты для работы с геоданными (Spatial).

Вводимая функциональность исключает инструменты командной строки и GUI для загрузки и выгрузки данных, в отличие от свободно распространяемой версии. Исключение связано с фактом необходимости указывать пароль пользователя в открытом виде. Загрузка и выгрузка данных в систему производится стандартным образом при работе с доверенным ресурсом.

Убраны инструменты Imp/Exp данных.

Ограничения

Текущие ограничения расширения:

  • в поставку не добавляются инструменты для загрузки или конвертации данных, а также пользовательские GIS-системы. Это связано с тем, что они используют пароли БД в открытом виде;
  • в поставку не добавляется jdbc драйвер PostGIS по причине наличия у драйвера лицензии GPL;
  • расширения входят в состав дополнительной части продукта (3rd party) и могут быть лицензированы «вирусными» лицензиями GPL, AGPL;
  • из поставки исключены функции ST_AsMVTGeom, ST_AsMVT, ST_AsGeobuf, поскольку они используют protobuf, отсутствующий в RHEL7. Аналогичное исключение применяется в свободно распространяемом Postgresql для RHEL7.

Установка

Установка системных зависимостей

Установите системные пакеты, необходимые для работы расширений:

  1. Для ALT 8 SP (8.4):

    sudo apt-get install libtiff5 json-c libpcre16 libmpfr6
  2. Для RedHat 7:

    sudo yum install libtiff json-c pcre

Установка поддерживающих библиотек

Для установки необходимых библиотек необходимо распаковать одноименные архивы «.tar.gz» в корень операционной системы:

distrib="путь до распакованного дистрибутива расширений и поддерживающих библиотек"
cd /
sudo tar -xzf $distrib/3rdparty/GDAL.tar.gz
sudo tar -xzf $distrib/3rdparty/PROJ.tar.gz
sudo tar -xzf $distrib/3rdparty/SFCGAL.tar.gz
sudo tar -xzf $distrib/3rdparty/cgal.tar.gz
sudo tar -xzf $distrib/3rdparty/geos.tar.gz

Библиотеки настроены на установку и работу по пути «/usr/local».

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

Проверьте наличие путей — это можно сделать, проверив все ли библиотеки найдены для исполняемого файла СУБД:

ldd $PGHOME/lib/postgis-3.so | grep "not found"

Для включения данного пути в список системных путей поиска библиотек можно воспользоваться следующими командами:

echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

Установка расширений

Установка расширений осуществляется путем распаковки архивов с расширениями в директорию установки продукта Pangolin:

distrib="путь до распакованного дистрибутива расширений и поддерживающих библиотек"
product="путь до директории с установленным продуктом Pangolin"
cd $product
sudo tar -xzf $distrib/3rdparty/postgis.tar.gz
sudo tar -xzf $distrib/3rdparty/pgrouting.tar.gz

Директорией установки продукта по умолчанию может быть /usr/pgsql-se-04, а начиная с версий 5.х – /usr/pangolin.

Перезагрузка сервера

Перед использованием расширений необходимо выполнить перезагрузку сервера СУБД Pangolin (restart --force).

Настройка

Настройка не требуется.

Использование расширения

Отключение аудита

На момент создания расширения рекомендуется отключить аудит, если он был включен. Если этого не сделать, процесс включения расширения займет значительное время и потребует большого количества оперативной памяти (не менее 24 ГБ).

Отключить аудит можно выполнив SQL запрос:

ALTER ROLE current_user SET pgaudit.log='none';

После этого необходимо переподключиться к сервису.

Включение расширения

Подключитесь к базе данных и выполните команды по загрузке всех или только необходимых расширений:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION postgis_tiger_geocoder CASCADE; -- needed extension fuzzystrmatch
CREATE EXTENSION postgis_topology;
CREATE EXTENSION address_standardizer;
CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION pgrouting;

Включение аудита

После создания расширения необходимо включить аудит, если он был включен до установки:

ALTER ROLE current_user RESET pgaudit.log;

После этого необходимо переподключиться к сервису.

Ссылки на документацию разработчика

Дополнительно поставляемый модуль postgis: https://postgis.net/docs/manual-3.1/.