Тип геометрии ArcGIS и PostGIS
PostGIS is a product from Refractions Research that can spatially enable PostgreSQL databases. PostGIS follows the Open Geospatial Consortium, Inc., Simple Features specification for SQL.
При использовании типа хранения PostGIS с ArcGIS нужно учесть следующее:
- Обязательно использовать шаблон базы данных PostGIS для создания базы данных PostgreSQL, используемой для базы геоданных, либо же активировать PostGIS в базе данных. См. раздел "Подготовка базы данных к использованию геометрии PostGIS".
- Пользователь sde и любой пользователь, создающий данные в базе геоданных, должен получить разрешения для используемых таблиц PostGIS. См. раздел "Предоставление пользователям прав на создание таблиц со столбцами геометрии PostGIS".
- Классы создаваемых пространственных объектов могут использовать только пространственные привязки, перечисленные в таблице PostGIS public.spatial_ref_sys. Если указана привязка, не перечисленная в таблице, класс объектов создан не будет.
- Следует указать ключевое слово конфигурации, которое содержите параметр GEOMETRY_STORAGE, присвоенный для PG_GEOMETRY, чтобы создать класс объекта, использующий тип геометрии PostGIS.
- Нельзя переименовывать пространственные таблицы, сохраненные с использованием типа геометрии PostGIS. Данное ограничение связано с тем, что не существует функции PostGIS для обновления имени таблицы public.geometry_columns.
В следующих разделах представлена более подробная информация об использовании типа хранения геометрии PostGIS в приложениях ArcGIS.
Подготовка базы данных к использованию геометрии PostGIS
Для использования типа геометрии PostGIS следует установить PostGIS. PostGIS устанавливается после установки PostgreSQL.
Для получения версии PostGIS, поддерживаемой ArcGIS, зайдите на веб-сайт PostGIS по адресу http://www.postgis.org/download/ либо на веб-сайт PgFoundry по адресу http://pgfoundry.org/, где вы найдете ссылки для загрузки файлов. Убедитесь, что вы загрузили файлы установки или двоичные файлы, соответствующие вашей операционной системе.
Проверьте системные требования к базе данных в ресурсном центре ArcGIS, чтобы убедиться в установке версии реляционной PostGIS, поддерживаемой имеющейся версией ArcGIS.
При установке PostGIS создается шаблон базы данных PostGIS в кластере базы данных PostgreSQL. Используйте шаблон базы данных PostGIS для создания базы данных, в которой будет храниться ваша база геоданных.
Если база геоданных создается с использованием инструмента геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase), ваша база данных будет создана с использованием шаблона, отличающегося от шаблона PostGIS. Таким образом, если вы хотите использовать тип геометрии PostGIS, следует создать базу данных вручную с помощью шаблона PostGIS, а затем создать журнал sde, используемый в качестве кластера базы данных и схему sde в базе данных. После этого можно использовать инструмент геообработки Включить многопользовательскую базу геоданных (Enable 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
После разрешения использования геометрии PostGIS в базе данных вы можете создавать таблицы для хранения пространственной информации, которые содержат столбец геометрии (пространственный столбец). Географические (пространственные) объекты хранятся в пространственных столбцах.
Доступ к таблицам для хранения пространственных данных осуществляется через ArcGIS for Desktop или путем создания приложений, использующих программный интерфейс для приложений ArcSDE C. Опытные программисты SQL также могут использовать вызов пространственных функций.
Создание классов пространственных объектов с использованием ArcGIS
Тип хранения, используемый для классов пространственных объектов, созданных с помощью ArcGIS, контролируется путем настройки параметров в таблице sde_dbtune. Этот параметр имеет название GEOMETRY_STORAGE. В базах геоданных, работающих в базах данных PostgreSQL, используют один из двух типов хранения геометрии: ST_GEOMETRY или PG_GEOMETRY (значение параметра типа хранения PostGIS). Таким образом, если нужно создать класс объектов с использованием ArcGIS на базе типа хранения PostGIS, следует указать ключевое слово конфигурации, которое содержите параметр GEOMETRY_STORAGE, присвоенный для PG_GEOMETRY.
Тип хранения данных ST_Geometry применяется по умолчанию для новых классов объектов в базе геоданных ArcSDE для PostgreSQL. Если нужно сохранить большинство данных с типом хранения 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 geometry, созданные вне ArcGIS другими приложениями или при помощи SQL (которые иногда называют таблицами сторонних производителей) при условии, что эти таблицы соответствуют следующим условиям.
- Каждая таблица должна принадлежать пользователю, который ее регистрирует.
- Каждая таблица должна содержать один столбец геометрии.
- Таблицы не должны иметь других столбцов, тип которых задается пользователем.
- Таблицы должны иметь один тип геометрии (точки, линии или полигоны), при этом геометрия может быть составной.
- В каждой таблице необходимо наличие столбца с целочисленными, уникальными значениями, отличными от NULL, которые можно использовать в качестве идентификатора строки.
- В каждой таблице должен присутствовать пространственный индекс.
Сведения о создании таблиц со столбцом PostGIS посредством SQL см. в документации PostGIS на сайте PostGIS.org.
Регистрация сторонних таблиц, содержащих столбцы геометрии PostGIS
Можно подключиться к базе данных PostgreSQL, содержащей таблицы PostGIS, через ArcGIS for Desktop и зарегистрировать их в базе геоданных. Дополнительную информацию см. в разделе Регистрация таблицы в базе геоданных.
Где найти документацию по PostGIS и PostgreSQL
Документацию PostGIS можно найти на сайте PostGIS: http://www.postgis.org/documentation/.
Общие сведения о PostgreSQL можно найти в документации на веб-сайте PostgreSQL: http://www.postgresql.org/docs/.