PostGIS

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:39, 21 мая 2019.
PostGIS
PostGIS logo.jpg
Разработчики: Refractions Research
Выпущена: 19 April 2001 года; 18 years ago (2001-04-19)
Постоянный выпуск: 2.5.2 / 11 March 2019 года; 5 months ago (2019-03-11)[Источник 1]
Операционная система: Windows, MacOS, Linux, POSIX-compliant systems
Тип ПО: Geographic information system
Лицензия: GNU General Public License
Веб-сайт postgis.net

PostGIS - это программное обеспечение с открытым исходным кодом, которое, в качестве внешнего расширения, добавляет поддержку географических объектов в реляционную базу данных PostgreSQL. Это позволяет выполнять запросы о местоположения с помощью SQL.

PostGIS в настоящее время является проектом OSGeo Foundation и разрабатывается и финансируется многими разработчиками FOSS4G, а также корпорациями по всему миру, которые получают большую выгоду от его функциональности и универсальности.[Источник 2]

История

В 2000 году PostgreSQL уже поддерживал “геометрические типы”. К сожалению, собственные геометрические типы PostgreSQL, хоть и пригодны для использования, но слишком ограничены для ГИС-данных и анализа. Они были созданы для научных исследований и больше подходят для компьютерной графики, чем для использования в ГИС.

Первая версия была выпущена в мае 2001 года компанией Refractions Research под лицензией GNU General Public License и носила номер 0.1. Эта ранняя версия имела возможность загружать и выполнять запросов к пространственным объектам с помощью простых функций.

С версии 0.5 в PostGIS была введена поддержка форматов OpenGIS, а также существующие функции получили возможность работать с OpenGIS-спецификациями.

В последующих версиях было добавлено множество пространственных функций и операторов. Началось обобщение этих функции в автономной библиотеке под названием GEOS, которая учитывает спецификации OpenGIS. Начиная с версии 0.8 PostGIS начал использовать библиотеку GEOS.

Следующие версии были направлены, прежде всего, на более эффективное управление памятью. Переход на новую структуру данных "light-weight geometry" произошел начиная с версии 1.0.

Стабильная версия «1.0» была выпущена 19 апреля 2005 года после шести пререлизов. В 2006 году PostGIS была зарегистрирована OGC с формулировкой «реализует описанный стандарт» для «Simple Features для SQL».[Источник 3]

Возможности

PostGIS включает в себя:

  • Поддерживаются такие объекты, как: Points, LineStrings, Polygons, MultiPoints, MultiLineStrings, MultiPolygons и GeometryCollections.
  • Позволяет производить геопространственные измерения, такие как вычисление площади, расстояния, длины и периметра.
  • Использует обобщенное дерево поиска для высокоскоростных пространственных запросов.
  • Для растровых данных используется PostGIS WKT Raster (переименован в PostGIS Raster).

Реализация PostGIS основана на «облегченных» геометриях и индексах, оптимизированных для уменьшения используемого места на диске и памяти. Использование легковесной геометрии помогает серверам увеличивать объем данных, перенесенных из физического дискового хранилища в оперативную память, существенно увеличивая производительность запросов.

PostGIS зарегистрирован как «реализующий указанный стандарт» для «простых возможностей SQL» OGC. PostGIS не была сертифицирована как соответствующая OGC.

Особенности

Данные в PostGIS часто находятся в одной структуре базы данных, это делает его удобнее в управлении и использовании относительно любого другого программного обеспечения ГИС, хранящего данные. Он не только упрощает пространственные запросы, но и позволяет получить стороннему программному обеспечению гораздо более легкий доступ к данным. Это происходит потому, что он использует стандартизированное простое форматирование объектов, которое позволяет другим типам пространственного программного обеспечения потенциально использовать те же сохраненные данные.

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

Для пользователей, которые хорошо знают SQL и привыкли работать с ним при администрировании баз данных, PostGIS прост в использовании, так как он применяет такие же подходы для выполнения своих запросов. Аналитические и обрабатывающие функции могут также выполняться в PostGIS для растровых и векторных данных, что позволяет легко генерировать карты по результатам анализа.

Хотя PostGIS позволила различным проектам извлечь выгоду из своего мощного бэкэнда, не все разработчики согласны, что использование PostGIS это лучший подход к решению некоторых пространственных задач. Современные методы NoSQL, которые часто используют более объектно-ориентированный стиль при структурировании данных и даже позволяют пользователям создавать свою собственную структуру хранения, часто используются при обработке более сложных запросов, так как потенциально могут быстрее получить данные.

Реляционная модель, которую использует PostGIS, не всегда позволяет быстро обращаться и извлекать информацию, так как этот способ храния данных может уступать другим, более гибким подходам, где пользователи ГИС могут создавать свой собственный формат для хранения данных.

Также известно, что PostGIS не всегда может масштабироваться до больших проектов с пространственной базой данных, в то время как NoSQL может быть легко распределен и масштабирован на несколько компьютеров. Это может быть особенно важно для веб-серверов с большими потребностями в хранении пространственных данных.[Источник 4]

Установка

В представленном видеоролике описывается процесс установки и настройки реляционной базы данных PostgreSQL, а также внешнего расширения PostGIS для нее.

По окончанию установки, пользователь получает готовую тестовую базу данных, поддерживающую ГИС объекты. Также все базы данных, созданные позже, будут поддерживать их.

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

-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

Источники

  1. PostGIS 2.5.2 Released // PostGIS. Дата обновления: 11.03.2019. URL: http://postgis.net/tag/2-5-2/ (дата обращения: 28.03.2019).
  2. PostGIS 2.5.3dev Manual // PostGIS. Дата обновления: 14.05.2019. URL: http://postgis.net/docs/manual-2.5/ (дата обращения: 21.05.2019).
  3. PostGIS History // Refractions Research. URL: http://www.refractions.net/products/postgis/history/ (дата обращения: 14.04.2019).
  4. What is PostGIS? // GIS Lounge. Дата обновления: 28.09.2017. URL: https://www.gislounge.com/what-is-postgis/ (дата обращения: 06.04.2019).