postgis учебник
Начало работы с postgis
Поиск…
замечания
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:
Доступен официальный пакет 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 требуется для создания изображений, используемых в документации.
Получить источники
Чтобы получить исходный код, загрузите последний архив:
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 user@target:[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à: теперь у вас есть пространственно разрешенная база данных с импортированными, перепрограммированными геоданными.
