PostGIS — это набор расширений для базы данных PostgreSQL. С PostGIS вы можете хранить геопространственные данные и выполнять пространственные запросы в базе данных postgres.
В отличие от стандартных типов данных по умолчанию в обычной базе данных postgres, пространственные данные должны обрабатываться по-разному. Запросы, которые вы можете выполнять в пространственной базе данных, обычно определяются ограничительными рамками в 2 или 3 измерениях. Чтобы хранить, индексировать и обрабатывать эти типы данных, postGIS использует концепцию R-Trees , которая не является частью установки postgres по умолчанию.
С помощью базы данных postGIS вы можете:
- хранить пространственные данные
- выполнять пространственные запросы, извлекать и извлекать информацию (точки, области).
- управлять пространственной информацией и метаданными в таблицах (например: используемая система координат coorinate-reference-system).
- преобразовывать геометрии из одной системы координат в другую
- сравнить геометрию и свойства экстракта (например: длина кромки дороги или здания)
- генерировать новые геометрии у других.
Версии
2.3.0 | HTML , PDF | 2016-09-26 |
2.2.0 | HTML , PDF | 2015-10-07 |
2.1.0 | HTML , PDF | 2013-08-17 |
2.0.0 | HTML , PDF | 2012-04-03 |
1.5.0 | 2010-02-04 | |
1.4.0 | 2009-07-24 | |
1.3.0 | 2007-08-09 | |
1.2.0 | 2006-12-08 | |
1.1.0 | 2005-12-21 | |
1.0.0 | 2005-04-19 |
Установка через диспетчер пакетов
Arch:
Иван Муратов PostgreSQL + PostGIS + TimescaleDB хранилище для систем мониторинга транспорта
Доступен официальный пакет pacman. Установите пакет как root, используя:
pacman -S postgis
OpenSuse:
Чтобы использовать репозитории openSuse для геопространственных приложений, включите Geo-репозиторий как root:
zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO
где [RELEASE] — официальный номер выпуска вашего Suse-дистрибутива. После этого вы можете установить postgis с:
zypper install postgis
Установка из источника (с Postgres 9.1 или новее)
Это руководство явно относится к PostgreSQL 9.1 или выше на Linux-машинах. Он использует функцию расширения postgres, которая значительно улучшит импорт расширений в существующую postgres-установку. Если вам нужно работать со старой версией postgres, обратитесь к официальным документам .
Урегулировать зависимости
PostGIS — это сложный проект с несколькими зависимостями. Чтобы продолжить процедуру ручной настройки и сборки, вам придется решить эти зависимости и установить следующие пакеты вручную или через пакет-менеджеров.
- PostgreSQL 9.1 или выше. Важно, чтобы вы устанавливали базу данных, включая заголовки серверов, обычно встречающиеся в dev -пакетах пакета-менеджера вашего репозитория.
- Компилятор GNU C gcc .
- GNU make . Чтобы завершить процесс сборки.
- Proj4 . Проекционная библиотека для согласованных преобразований.
- GEOS . Библиотека геометрии, которая реализует описания функций и простые геометрии. Версии 3.5 или выше рекомендуется для использования более новых функций, таких как ST_ClipByBox2D и ST_Subdivide .
- GDAL , версия 1.9 или выше. Библиотека, которая реализует абстрактные форматы данных для растровых и векторных геопространственных данных.
- LibXML2 , версия 2.5 или выше. Либрайер для работы с XML, XSLT и DTD.
- JSON-C , версия 0.9 или выше. Библиотека для создания вывода в формате JSON
- GTK (требуется GTK + 2.0, 2.8+) для компиляции shp2pgsql-gui.
- SFCGAL , версия 1.1 (или выше) может использоваться для предоставления дополнительных функций расширенного анализа 2D и 3D для PostGIS.
- PCRE . Библиотека для сопоставления регулярных выражений с использованием синтаксиса Perl 5. Эта библиотека необходима, если вы хотите работать со стандартным редактором .
- CUnit . Утилита тестирования модулей, необходимая для регрессионного тестирования.
- Для создания документации требуется DocBook (xsltproc).
- DBLatex требуется для создания документации в формате PDF.
- ImageMagick требуется для создания изображений, используемых в документации.
Получить источники
Daniel Silk: 10 Things I’ve Learnt About PostGIS
Чтобы получить исходный код, загрузите последний архив:
wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz tar -xvzf postgis-2.3.2dev.tar.gz
или использовать официальный SVN-репозиторий:
svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev
конфигурация
Если вы получили источники через SVN, вы можете подготовить конфигурационный скрипт с помощью:
./autogen.sh
Чтобы настроить процесс сборки для вашей конкретной машины, запустите в папке проекта:
./configure
Для шага конфигурации существует несколько необязательных параметров. Пожалуйста, обратитесь к официальной документации за подробными инструкциями, обычно это необязательно и только для серверов, которые используют установки, отличные от установленных по умолчанию.
строить
Как только шаг конфигурации завершится успешно, будет создан make-файл. Чтобы запустить процесс сборки, выполните следующие действия:
make
Последний выход должен быть:
«PostGIS was built successfully. Ready to install.»
Начиная с версии 1.4.0, все функции имеют комментарии, созданные из документации. Если вы хотите позже установить эти комментарии в свои пространственные базы данных, запустите команду, требующую docbook.
make comments
Монтаж
Установите все расширения с помощью:
make install
Расширения PostGIS создаются и устанавливаются автоматически, если вы используете PostgreSQL 9.1 или выше. Вы можете установить необходимые расширения вручную, если у вас есть другая настройка.
В папке проекта:
cd extensions cd postgis make clean make make install cd .. cd postgis_topology make clean make make install cd .. cd postgis_sfcgal make clean make make install cd .. cd address_standardizer make clean make make install make installcheck cd .. cd postgis_tiger_geocoder make clean make make install make installcheck
Если вы хотите установить расширения вручную на другой машине, скопируйте следующие файлы из папки extensions папку PostgreSQL/share/extension -target. Для каждого расширения:
scp extensions/[EXTENSION]/sql/*.sql [email protected]:[POSTGIS_PATH]/share/extension
где [EXTENSION] — выбранное расширение (postgis, postgis_topology, postgis_sfcgal, address_standardizer, postgis_tiger_geocoder), а [POSTGIS_PATH] — путь установки PostGIS на вашей целевой машине.
Проверка установки
Если у вас нет службы баз данных postgres, сначала настройте свою базу данных postgres . Подключитесь к базе данных, используя:
su postgres -c psql
Чтобы убедиться, что расширения доступны, запустите следующие запросы в psql-сеансе:
SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE ‘postgis%’ or name LIKE ‘address%’;
Результат должен выглядеть следующим образом:
name | default_version | installed_version ——————————+——————+——————- address_standardizer | 2.3.2dev | 2.3.2dev address_standardizer_data_us | 2.3.2dev | 2.3.2dev postgis | 2.3.2dev | 2.3.2dev postgis_sfcgal | 2.3.2dev | postgis_tiger_geocoder | 2.3.2dev | 2.3.2dev postgis_topology | 2.3.2dev | (6 rows)
Чтобы выполнить углубленный тест после установки, выполните следующую команду в папке проекта:
make check
Это будет проходить через различные проверки и тесты с использованием сгенерированной библиотеки против фактической базы данных PostgreSQL.
Настройка геопространственной базы данных
Чтобы создать новую пустую базу данных, запустите ее как postgres-user:
createdb [yourdatabase]
Подключитесь к базе данных с помощью psql-сессии:
psql -d [yourdatabase]
В сеансе psql-session:
CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;
для создания необходимых геопространственных расширений. Как только это будет сделано, база данных — это база данных с поддержкой геопространства, и она готова к использованию.
Геопространственный «Hello World»
В этом примере мы создадим геопространственную базу данных, импортируем данные из двух разных источников и рассмотрим результаты в приложении QGIS. Это руководство явно написано для linux-машин, если вы работаете на другой платформе, некоторые команды или пути могут работать не так, как ожидалось.
Чтобы просмотреть импортированные данные, мы будем использовать приложение QGIS . Если у вас нет этого приложения, пожалуйста, установите его первым , если вы хотите использовать другой просмотрщик или геоприложение (например, ArcGIS), вы можете пропустить установку QGIS.
Нашими источниками будут кварталы госсекретарей штата Нью-Йорк и база данных улиц Нью-Йорка LION Street . Загрузите соответствующие файлы из связанных мест. Вы также должны взглянуть на раздел метаданных материала, так как он дает вам информацию о том, какая система координат используется этими файлами.
Для начала создайте рабочую папку «nycgis», скопируйте загруженные файлы в папку и распакуйте архивы.
mkdir nycgis cd nycgis cp ~/Downloads/nyad_16d.zip . unzip ~/Downloads/nyad_16d.zip cp ~/Downloads/nylion_16d.zip . unzip ~/Downloads/nylion_16d.zip
В папке «nycgis» у вас должно быть 2 папки: «nyad_16d», «lion» с несколькими файлами.
При работе с геоданными жизненно важно знать координатную систему координат (CRS) исходных данных и конечные выходные данные. В разделах «Метаданные» связанных местоположений ( Метаданные: Сборочные округа , Метаданные: база данных LION ) вы обнаружите, что CRS для обоих файлов — EPSG: 2263, система координат, используемая для ссылки на северо-восток США.
Предположим, мы хотим использовать другую CRS в нашей базе данных. Это может иметь разные причины, мы могли бы захотеть работать с веб-геоприложением в базе данных, например. Общим CRS для такого типа приложений является WGS: 84 (EPSG: 4326).
Чтобы преобразовать системы координат, мы используем инструмент, называемый ogr2ogr является частью пакета GDAL. В рабочей папке мы сначала создаем 2 папки, представляющие перепрограммированные данные, а затем преобразуем наши данные.
mkdir nyad_16d_proj_4326 ogr2ogr -f «ESRI Shapefile» ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326 mkdir nylion_16d_proj_4326 ogr2ogr -f «ESRI Shapefile» ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326
Обратите внимание, что для наших целей мы используем только файл «a0000000d.gdbtable» LION-Database. Синтаксис ogr2ogr -команда выглядит следующим образом :
ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]
Теперь у нас есть 2 шейп-файла, спроектированных в правильной CRS. Чтобы использовать данные в нашей базе данных, мы должны преобразовать шейп-файлы в sql-statemens. Для этого мы используем инструмент shp2pgsql . В рабочем каталоге выполните следующие команды:
shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql
Файлы nyad_4326.sql и ny_streets_4326.sql теперь готовы к использованию в postgis. Чтобы продолжить и импортировать данные, создайте пространственно разрешенную базу данных.
sudo su — postgres createdb nycgis psql -d nycgis
В psql-сеансе выполните:
CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;
Выйдите из сеансов psql- и postgres-user с помощью (CTRL + D). И импортируйте файлы с помощью:
psql -f nyad_4326.sql -d nycgis psql -f ny_streets_4326.sql -d nycgis
В базе данных nycgis теперь есть 2 таблицы, в которых успешно были импортированы nycgis источники.
Чтобы проверить это: открыть QGIS
- используйте Layer >Add Layer >PostGIS-Layer
- подключиться к вашей базе данных
- выберите свои таблицы
- (необязательно) установить стиль вновь созданных слоев.
Et voilà: теперь у вас есть пространственно разрешенная база данных с импортированными, перепрограммированными геоданными.
Источник: learntutorials.net
Руководство по PostGIS
PostGIS — расширение объектно-реляционной СУБД PostgreSQL предназначенное для хранения в базе географических данных. PostGIS включает поддержку пространственных индексов R-Tree/GiST и функции обработки геоданных.
Это руководство актуально для версии 1.3.4 (оригинал пособия). Последняя версия руководства: 1.4SVN
О переводе
Основная работа по переводу выполнена Дмитрием Скоробогатовым. Правка, редакция и обновление: Максим Дубинин. Перевод максимально приближен к оригиналу. В оригинале замечены некоторые ошибки, связанные со ссылками на не вышедшую пока версию 1.3.4., ссылки исправлены на текущую версию 1.3.3.
Версия для загрузки в формате PDF, 1Mb (загрузить).
В процессе перевода и редакции был составлен небольшой вспомогательный словарь терминов.
- 1. Предисловие
- 1.1. Благодарности
- 1.2. Дополнительная информация
- 2.1. Требования
- 2.2. PostGIS
- 2.2.1. Создание пространственных баз данных, совместимых с PostGIS, с помощью шаблона разработки
- 2.2.2. Обновление
- 2.2.3. Обычные проблемы
- 4.1. Объекты ГИС
- 4.1.1. OpenGIS WKB и WKT
- 4.1.2. PostGIS EWKB, EWKT и Канонические формы
- 4.1.3. SQL-MM часть 3
- 4.2.1. Таблица SPATIAL_REF_SYS
- 4.2.2. Таблица GEOMETRY_COLUMNS
- 4.2.3. Создание пространственной таблицы
- 4.2.4. Обеспечение геометрий, согласованных с OpenGIS
- 4.3.1. Использование SQL
- 4.3.2. Использование загрузчика
- 4.4.1. Использование SQL
- 4.4.2. Использование дампера
- 4.5.1. Индексы GiST
- 4.5.2. Использование индексов
- 4.6.1. Преимущества индексов
- 4.6.2. Примеры пространственного SQL
- 4.7.1. Основы использования
- 4.7.2. Часто задаваемые вопросы
- 4.7.3. Продвинутое использование
- 4.7.4. Примеры
- 4.9.1. Текстовые указатели
- 4.9.2. Бинарные указатели
- 5.1. Маленькие таблицы больших геометрий
- 5.1.1. Описание проблемы
- 5.1.2. Как обойти проблему
- 6.1. Функции OpenGIS
- 6.1.1. Функции управления
- 6.1.2. Функции геометрической связи
- 6.1.3. Функции обработки геометрии
- 6.1.4. Геометрические способы доступа
- 6.1.5. Геометрические конструкторы
- 6.2.1. Функции управления
- 6.2.2. Операторы
- 6.2.3. Функции измерения
- 6.2.4. Геометрический вывод
- 6.2.5. Геометрические конструкторы
- 6.2.6. Геометрические редакторы
- 6.2.7. Линейные ссылки
- 6.2.8. Разное
- 6.2.9. Поддержка долгих транзакций
- 7.1. Сообщения об ошибках в программном обеспечении
- 7.2. Сообщения об ошибках в документации
- A.1. Примечания к релизам
- A.1.1. Релиз 1.3.3
- A.1.2. Релиз 1.3.2
- A.1.3. Релиз 1.3.1
- A.1.4. Релиз 1.3.0
- A.1.5. Релиз 1.2.1
- A.1.6. Релиз 1.2.0
- A.1.7. Релиз 1.1.6
- A.1.8. Релиз 1.1.5
- A.1.9. Релиз 1.1.4
- A.1.10. Релиз 1.1.3
- A.1.11. Релиз 1.1.2
- A.1.12. Релиз 1.1.1
- A.1.13. Релиз 1.1.0
- A.1.14. Релиз 1.0.6
- A.1.15. Релиз 1.0.5
- A.1.16. Релиз 1.0.4
- A.1.17. Релиз 1.0.3
- A.1.18. Релиз 1.0.2
- A.1.19. Релиз 1.0.1
- A.1.20. Релиз 1.0.0
- A.1.21. Релиз 1.0.0RC6
- A.1.22. Релиз 1.0.0RC5
- A.1.23. Релиз 1.0.0RC4
- A.1.24. Релиз 1.0.0RC3
- A.1.25. Релиз 1.0.0RC2
- A.1.26. Релиз 1.0.0RC1
Последнее обновление: September 02 2010
Источник: gis-lab.info
PostGIS в PostgreSQL — как можно использовать
Использование системы управления объектно-реляционными базами данных PostgreSQL в сочетании с расширением PostGIS дает большие возможности для работы с пространственными данными — в руки программиста попадает больше инструментов и механик. При этом повсеместное внедрение этой связки тормозит недостаточное понимание её возможностей.
Рассмотрим, как PostGIS применяют в связке с PostgreSQL в теории и на практике.
Что такое PostGIS
PostGIS — программное расширение с открытым исходным кодом, расширяющее пространственную базу данных системы управления PostgreSQL. Расширение добавляет поддержку географических объектов, благодаря чему появляется возможность выполнять запросы местоположения в SQL.PostGIS позволяет хранить ряд географических и пространственных данных — точек, ломаных линий, полигонов, растр, а также использовать их для разных операций, например, поиска.
В комбинации с PostgreSQL расширение PostGIS является одним из ведущих ГИС-решений, которое используется во многих крупных интерфейсных геолокационных приложениях, связанных с поиском координат и объектов на карте и получением информации о них.
Например, данные PostGis могут использоваться такими картографическими приложениями, как MapServer, GRASS, uDig, QGIS, GDAL/OGR, FeatureServer, GeoServer, SharpMap, gvSIG.
Как используют PostGIS в связке с PostgreSQL
PostgreSQL имеет поддержку собственных геометрических типов, но их функциональность ограничена — она подходит для научных исследований и выстраивания компьютерной графики (статичных визуальных карт), но недостаточна для ГИС-данных или проведения сложного анализа.
PostGIS в PostgreSQL используется для снятия ограничений, расширения функций и позволяет применять:
- пространственные предикаты (утверждения, высказанные о субъекте) для определения взаимодействий геометрий с применением 3×3 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, логистике и геймдеве Сергей Кулаков Старший технический писатель, SberCloud.
Примеры использования PostGIS для реальных задач
Возможности связки PostGIS и PostgreSQL на практике могут использоваться для определения:
- расстояния от точки до точки;
- ближайшей точки между извилистыми улицами на местности;
- улицы или даже дома по определенным координатам;
- количества домов, попадающих в заданную область пространства;
- количества объектов, находящихся поблизости с заданной точкой;
- площади, расстояний, длин, периметров заданных объектов и множества других данных.
Например, PostgreSQL с предустановленным расширением PostGIS может использоваться для:
- вычисления площади города, региона, государства;
- поиска ближайшей кофейни или магазина;
- построения карты (в том числе растровой) с отображением заданных объектов;
- поиска объектов или местностей, отвечающих заданным критериям (самый крупный город, самая южная страна, самая высокая точка);
- создания фоновых картограмм (хороплетов) на основе информации из базы данных и выбранных критериев.
Вариантов использования PostGIS для реальных задач много, и на практике они ограничены только конкретными задачами бизнеса.
Стоит отметить, что функциональность PostgreSQL с PostGIS также зависит от параметров используемой базы данных: её актуальности, детальности и достоверности.
Что в итоге
Расширение PostGIS для системы управления базами данных PostgreSQL — отличная альтернатива для большинства коммерческих продуктов (в том числе собственных геометрических типов), которая дает широкий набор инструментов для работы с пространственными данными. Работа PostGIS на базе PostgreSQL обеспечивает надежность, открытость и соответствие стандартам.
Возможности применения расширения очень большие, благодаря чему оно активно используется, а его регулярное обновление дает большие перспективы для дальнейшего применения.
- PostGIS tips: Where to get started
- PostGIS
- УСТАНОВКА И НАСТРОЙКА POSTGIS В UBUNTU 14.04
Запросите бесплатную консультацию по вашему проекту
Источник: cloud.ru