PostGIS в PostgreSQL — как можно использовать
Статья
Время чтения
4 минуты
Использование системы управления объектно-реляционными базами данных PostgreSQL в сочетании с расширением PostGIS дает большие возможности для работы с пространственными данными — в руки программиста попадает больше инструментов и механик. При этом повсеместное внедрение этой связки тормозит недостаточное понимание её возможностей.
Рассмотрим, как PostGIS применяют в связке с PostgreSQL в теории и на практике.
Что такое PostGIS
PostGIS — программное расширение с открытым исходным кодом, расширяющее пространственную базу данных системы управления PostgreSQL. Расширение добавляет поддержку географических объектов, благодаря чему появляется возможность выполнять запросы местоположения в SQL.PostGIS позволяет хранить ряд географических и пространственных данных — точек, ломаных линий, полигонов, растр, а также использовать их для разных операций, например, поиска.
В комбинации с PostgreSQL расширение PostGIS является одним из ведущих ГИС-решений, которое используется во многих крупных интерфейсных геолокационных приложениях, связанных с поиском координат и объектов на карте и получением информации о них.
Например, данные PostGis могут использоваться такими картографическими приложениями, как MapServer, GRASS, uDig, QGIS, GDAL/OGR, FeatureServer, GeoServer, SharpMap, gvSIG.
PostGIS можно бесплатно скачать на официальном сайте разработчика.
Как используют PostGIS в связке с PostgreSQL
PostgreSQL имеет поддержку собственных геометрических типов, но их функциональность ограничена — она подходит для научных исследований и выстраивания компьютерной графики (статичных визуальных карт), но недостаточна для ГИС-данных или проведения сложного анализа.
PostGIS в PostgreSQL используется для снятия ограничений, расширения функций и позволяет применять:
пространственные предикаты (утверждения, высказанные о субъекте) для определения взаимодействий геометрий с применением 3x3 DE-9IM;
пространственные индексы R-tree -over- GiST для быстрых пространственных запросов;
пространственные операторы для проведения геопространственных вычислений и определения геопространственного набора операций (объединение, разность, симметричная разность);
растровые данные;
функции создания геометрий и управления ими (создание и удаление полей с географическими данными, запросы скриптов, библиотек);
функции редактирования геометрий и их форматированного вывода;
расширенные 2D- и 3D-функции, в том числе для определения пересечений в 3D-пространстве);
инструменты для определения пространственных отношений и измерений (например, для сравнения расстояния по плоскости и на сфере);
функции создания и отображения растров в удобном формате (например, в JPEG или PNG);
инструменты обработки растров (очищение рельефа, векторизация, увеличение или уменьшение яркости);
функции редактирования каналов растра;
топологию и экстра-функции.
PostgreSQL может работать под управлением сервиса Relational Database Service. Сервис имеет поддержку PostGIS, read-реплик, а также MySQL, Microsoft SQL Server и функции автоматического резервного копирования баз данных.
При выборе решения для управления базами данных приходится учитывать сразу несколько факторов, особенно когда требуется организовать высокодоступную отказоустойчивую систему. Автоматическое резервное копирование и поддержка архитектуры primary/standby с возможностью разнесения инстансов по разным зонам доступности делают RDS оптимальным выбором для производственных баз данных на крупных и средних проектах, для приложений в IoT, e-commerce, логистике и геймдеве
Примеры использования PostGIS для реальных задач
Возможности связки PostGIS и PostgreSQL на практике могут использоваться для определения:
расстояния от точки до точки;
ближайшей точки между извилистыми улицами на местности;
улицы или даже дома по определенным координатам;
количества домов, попадающих в заданную область пространства;
количества объектов, находящихся поблизости с заданной точкой;
площади, расстояний, длин, периметров заданных объектов и множества других данных.
Например, PostgreSQL с предустановленным расширением PostGIS может использоваться для:
вычисления площади города, региона, государства;
поиска ближайшей кофейни или магазина;
построения карты (в том числе растровой) с отображением заданных объектов;
поиска объектов или местностей, отвечающих заданным критериям (самый крупный город, самая южная страна, самая высокая точка);
создания фоновых картограмм (хороплетов) на основе информации из базы данных и выбранных критериев.
Вариантов использования PostGIS для реальных задач много, и на практике они ограничены только конкретными задачами бизнеса.
Стоит отметить, что функциональность PostgreSQL с PostGIS также зависит от параметров используемой базы данных: её актуальности, детальности и достоверности.
Что в итоге
Расширение PostGIS для системы управления базами данных PostgreSQL — отличная альтернатива для большинства коммерческих продуктов (в том числе собственных геометрических типов), которая дает широкий набор инструментов для работы с пространственными данными. Работа PostGIS на базе PostgreSQL обеспечивает надежность, открытость и соответствие стандартам.
Возможности применения расширения очень большие, благодаря чему оно активно используется, а его регулярное обновление дает большие перспективы для дальнейшего применения.