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.
Системные пакеты, необходимые для работы расширений:
-
Для ALT 8 SP (8.4):
- libtiff5;
- json-c;
- libpcre16;
- libmpfr6.
Команда установки:
sudo apt-get install libtiff5 json-c libpcre16 libmpfr6 -
Для 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.
Установка
Установка системных зависимостей
Установите системные пакеты, необходимые для работы расширений:
-
Для ALT 8 SP (8.4):
sudo apt-get install libtiff5 json-c libpcre16 libmpfr6 -
Для 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/.