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

Версия: 3.5.3.

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

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

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

  • ext;

  • topology;

  • tiger;

  • tiger_data.

Примечание:

Расширение PostGIS распространяется по лицензии GNU GPL.

Для версий 4.6.1, 5.2.1 (и более новых) были собраны и включены в дистрибутив расширения и поддерживающие библиотеки.

Расширение 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.

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

  • GDAL;

  • PROJ;

  • SFCGAL;

  • cgal;

  • geos.

Доработка#

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

Версия: 4.4.0.

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

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

Ограничения#

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

  • в поставку не добавляются инструменты для загрузки или конвертации данных, а также пользовательские GIS-системы. Это связано с тем, что они используют пароли БД в открытом виде;

  • в поставку не добавляется jdbc драйвер PostGIS по причине наличия у драйвера лицензии GPL;

  • расширения входят в состав дополнительной части продукта (3rd Party) и могут быть лицензированы «вирусными» лицензиями GPL, AGPL.

Установка#

Для начала использования расширения postgis выполните следующие действия:

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

    • json-c - 0.13;

    • libtiff - 4.0;

    • pcre - 8.42;

    • gmp-c++ - 6.1.0.

    • libtiff5 - 4.0;

    • libpcre16 - 8.44;

    • libmpfr6 - 4.0;

    • libgmpxx4 - 6.1.0;

    • libjson-c5 - 0.17. (для Альт Сервер 9.2 - libjson-c4)

    • libtiff5 - 4.0;

    • libjson-c3 - 0.12;

    • libpcre3 - 8.39;

    • libmpfr6 - 4.0;

    • libgmpxx4ldbl - 6.1.0.

  2. Установите rpm/deb-пакеты расширений:

    sudo dnf install /usr/{product_version}/3rdparty/postgis/pangolin-postgis-{version_extension}_{OS}.x86_64.rpm -y
    sudo dnf install /usr/{product_version}/3rdparty/pgroutin pangolin-pgrouting-{version_extension}_{OS}.x86_64.rpm -y
    
    sudo apt install /usr/{product_version}/3rdparty/postgis/pangolin-postgis-{version_extension}_{OS}.x86_64.deb -y
    sudo apt install /usr/{product_version}/3rdparty/pgroutin pangolin-pgrouting-{version_extension}_{OS}.x86_64.deb -y
    
  3. При использовании функциональности аудита на момент создания расширения рекомендуется отключить аудит (если он был включен). Иначе процесс включения расширения займет значительное время и потребует ресурсов оперативной памяти (не менее 24 ГБ). Пример команды:

    ALTER ROLE current_user SET pgaudit.log='none';
    
  4. Перезагрузите сервер:

    sudo systemctl restart --force
    
  5. Подключитесь к базе данных и выполните команды по загрузке всех или только необходимых расширений:

    CREATE EXTENSION postgis;
    CREATE EXTENSION postgis_raster;
    CREATE EXTENSION postgis_sfcgal;
    CREATE EXTENSION fuzzystrmatch; -- нужно для установки    postgis_tiger_geocoder
    CREATE EXTENSION postgis_tiger_geocoder CASCADE;
    CREATE EXTENSION postgis_topology;
    CREATE EXTENSION address_standardizer;
    CREATE EXTENSION address_standardizer_data_us;
    CREATE EXTENSION pgrouting;
    
  6. После создания расширения включите аудит, если отключали его:

    ALTER ROLE current_user RESET pgaudit.log;
    
  7. Перезагрузите сервер:

    sudo systemctl reboot --force
    

Отключение расширения#

  1. Для отключения расширения выполните:

    DROP EXTENSION <extension_name>
    
  2. Удалите rpm/deb-пакеты:

    sudo dnf remove pangolin-postgis-{version_extension}_{OS}.x86_64.rpm -y
    sudo dnf remove pangolin-pgrouting-{version_extension}_{OS}.x86_64.rpm -y
    
    sudo apt remove pangolin-postgis-{version_extension}_{OS}.x86_64.deb -y
    sudo apt remove pangolin-pgrouting-{version_extension}_{OS}.x86_64.deb -y
    

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

С примерами использования расширения можно ознакомиться в подразделе «Сценарии использования» раздела «Поддержка геоданных PostGIS» документа «Администрирование функциональностей»

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

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