Тип геометрии ArcGIS и PostGIS

PostGIS – это продукт, который расширяет возможности базы данных PostgreSQL для работы с пространственными данными. PostGIS соответствует спецификации простых объектов (Simple Features specification) для языка SQL, разработанной Open Geospatial Consortium, Inc. (OGC). В этом продукте используется стандартные двоичные (WKB) и текстовые (WKT) представления геометрии.

В PostGIS имеется два пространственных типа: geometry и geography. В ArcGIS поддерживается только тип geometry.

При использовании типа хранения geometry в PostGIS с ArcGIS нужно учесть следующее:

В следующих разделах представлена более подробная информация об использовании типа хранения геометрии PostGIS в приложениях ArcGIS.

Подготовка базы данных к использованию геометрии PostGIS

Для использования типа геометрии PostGIS следует установить PostGIS. PostGIS устанавливается после установки PostgreSQL. Убедитесь, что вы установили версию PostGIS, поддерживаемую версией ArcGIS, с которой вы работаете.

ПодсказкаПодсказка:

См. страницу системных требований к базе данных в Центре ресурсов ArcGIS чтобы узнать, какие версии PostGIS поддерживаются используемой вами версией ArcGIS.

При установке PostGIS создается шаблон базы данных PostGIS в кластере базы данных PostgreSQL. Используйте шаблон базы данных PostGIS для создания базы данных, в которой будет храниться ваша база геоданных.

ПримечаниеПримечание:

Если база геоданных создается с использованием инструмента геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase), ваша база данных будет создана с использованием шаблона, отличающегося от шаблона PostGIS. Поэтому, если вы хотите использовать тип геометрии PostGIS, следует создать базу данных вручную, используя шаблон PostGIS. После этого при запуске инструмента геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) можно выбрать существующую базу данных, в которой будет создана база геоданных.

Предоставление пользователям прав на создание таблиц со столбцами геометрии PostGIS

Если для базы данных разрешено использование PostGIS, в общей схеме будут созданы две таблицы – geometry_columns и spatial_ref_sys. Как минимум, нужно выдать права SELECT, INSERT, UPDATE и DELETE для столбцов таблицы geometry_columns, а также выбрать SELECT для таблицы spatial_ref_sys для пользователя sde и всех пользователей, которые будут создавать данные в базе геоданных.

GRANT select, insert, update, delete 
ON TABLE public.geometry_columns 
TO <user_name>;

GRANT select
ON TABLE public.spatial_ref_sys
TO <user_name>;

Создание классов пространственных объектов в базе геоданных PostgreSQL с использованием формата хранения PostGIS geometry

После разрешения использования геометрии PostGIS в базе данных вы можете создавать таблицы для хранения пространственной информации, которые содержат столбец геометрии (пространственный столбец). Географические (пространственные) объекты хранятся в пространственных столбцах.

Доступ к таблицам для хранения пространственных данных осуществляется через ArcGIS for Desktop или путем создания приложений, использующих программный интерфейс (API) для приложений ArcSDE C. Опытные программисты SQL также могут использовать вызов пространственных функций.

Создание классов пространственных объектов с использованием ArcGIS

Тип хранения geometry, используемый для классов пространственных объектов, созданных с помощью ArcGIS, контролируется путем настройки параметров в таблице sde_dbtune. Этот параметр имеет название GEOMETRY_STORAGE. В базах геоданных, работающих в базах данных PostgreSQL, используют один из двух типов хранения геометрии: ST_GEOMETRY или PG_GEOMETRY (значение параметра типа хранения PostGIS geometry). Таким образом, если нужно создать класс объектов с использованием ArcGIS на базе типа хранения PostGIS geometry, следует указать ключевое слово конфигурации, которое содержите параметр GEOMETRY_STORAGE со значением PG_GEOMETRY.

По умолчанию для хранения данных геометрии для новых классов объектов в базе геоданных ArcSDE для PostgreSQL используется ST_Geometry. Если нужно сохранить большинство данных с типом хранения PostGIS, измените параметр GEOMETRY_STORAGE в ключевом слове DEFAULTS в таблице sde_dbtune на PG_GEOMETRY. (Используйте команду sdedbtune, чтобы изменить параметры в таблице sde_dbtune. Более подробно о применении этой команды см. в Руководстве по командам администрирования ArcSDE (ArcSDE Administration Command Reference). Если вы хотите хранить только часть ваших классов пространственных объектов, используя тип геометрии PostGIS, то вы можете указать ключевое слово PG_GEOMETRY при создании класса пространственных объектов. В файле dbtune.sde, который можно создать путем экспорта содержимого таблицы sde_dbtune с помощью команды sdedbtune, ключевое слово PG_GEOMETRY будет иметь следующий вид:

##PG_GEOMETRY
GEOMETRY_STORAGE    "PG_GEOMETRY"
UI_TEXT             "User Interface text description for POSTGIS geometry storage" 
END

Остальные параметры хранения будут взяты из ключевого слова DEFAULTS. Более подробную информацию о sde_dbtune можно найти в следующих разделах:

Использование существующих таблиц PostGIS

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

Сведения о создании таблиц со столбцом PostGIS с помощью SQL находятся в документации к PostGIS.

Регистрация сторонних таблиц, содержащих столбцы геометрии PostGIS

Можно подключиться к базе данных PostgreSQL, содержащей таблицы PostGIS, через ArcGIS for Desktop и зарегистрировать их в базе геоданных. Дополнительную информацию см. в разделе Регистрация таблицы в базе геоданных.

Где найти документацию по PostGIS и PostgreSQL

Документацию PostGIS можно найти на сайте PostGIS: http://www.postgis.org/documentation/.

Общие сведения о PostgreSQL можно найти в документации на веб-сайте PostgreSQL: http://www.postgresql.org/docs/.

5/10/2014