Поиск…


замечания

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

  1. используйте Layer > Add Layer > PostGIS-Layer
  2. подключиться к вашей базе данных
  3. выберите свои таблицы
  4. (необязательно) установить стиль вновь созданных слоев.

QGIS-Скриншот

Et voilà: теперь у вас есть пространственно разрешенная база данных с импортированными, перепрограммированными геоданными.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow