IBM Informix Spatial DataBlade встраивает функциональность географических информационных систем (ГИС) в ядро Informix Dynamic Server (IDS). Модуль Informix Spatial DataBlade использует спецификации пользовательских типов данных SQL 3 (Open Geospatial Consortium, Inc. (OGC)), что позволяет создавать столбцы, в которых могут храниться пространственные данные, например улицы, участки, достопримечательности.
В базе геоданных, находящейся в СУБД Informix, для хранения пространственных данных используются типы данных Informix Spatial DataBlade. Поэтому, перед созданием базы геоданных в базе данных Informix необходимо зарегистрировать модуль Spatial DataBlade.
Для дополнительной информации об установке и использовании Informix Spatial DataBlade, обратитесь к Руководству пользователя IBM Informix Spatial DataBlade Module User's Guide. В руководстве The DataBlade Module Installation and Registration Guide также описано, как зарегистрировать модуль DataBlade.
Как работает IBM Spatial DataBlade
После установки Informix Spatial DataBlade вы можете создавать таблицы для хранения пространственной информации, которые содержат столбец геометрии (пространственный столбец). Они называются в ArcGIS классом пространственных объектов. Географические (пространственные) объекты хранятся в пространственных столбцах. Informix Spatial DataBlade конвертирует пространственные данные в собственный формат для хранения, используя один из трех форматов:
- Стандартное текстовое представление WKT
- Стандартное двоичное представление OGC (OGC Well-Known Binary, OGC WKB)
- Представление в формате шейп (Esri)
Базы геоданных в базах данных Informix используют представление в формате шейп (Esri).
Таблица пространственной привязки
Система пространственной привязки определяет матрицу трансформации координат для каждого типа геометрии. Геометрия – это термин, одобренный OGC (Открытый геопространственный консорциум), для обозначения двухмерных пространственных данных. Все системы пространственной привязки, известные базе данных, хранятся в таблице spatial_references. В таблице spatial_references хранятся записи для каждой системы пространственной привязки в базе данных.
Внутренние функции используют параметры пространственной привязки для трансляции и масштабирования координат геометрии с плавающей точкой в положительные целочисленные значения, которые выполняются до сохранения данных. В процессе извлечения значения координат трансформируются во внешний формат с плавающей точкой.
Координаты с плавающей точкой конвертируются в целочисленные с помощью вычитания значений falsex и falsey, что позволяет определить исходную точку начала координат, затем происходит масштабирование, путем умножения единиц x,y, добавления половины единицы и округления остатка.
Дополнительные z-координаты и измерения обрабатываются так же, но трансляция происходит по значениям falsez и falsem, а масштабирование с помощью z- и m-единиц, соответственно.
SRID, первичный ключ spatial_references, содержит уникальное число для каждой системы пространственной привязки.
Система пространственной привязки присваивается геометрии в процессе ее создания. Система пространственной привязки должна присутствовать в таблице spatial_references. Вся геометрия в столбце должна иметь одинаковую пространственную привязку.
Когда вы создаете класс объектов, ArcGIS выполняет поиск в таблице spatial_references и пытается обнаружить соответствующую систему пространственной привязки. Если система найдена, классу объектов присваивается SRID; иначе, ArcGIS добавляет новую систему пространственной привязки в таблицу spatial_references и присваивает ее данному классу объектов.
Когда вы импортируете данные в класс объектов из другого источника данных, например, из покрытия или шейп-файла, координаты данных должны совпадать с экстентом системы пространственной привязки. Каждый объект, находящийся вне экстента пространственной привязки, отбрасывается.
Классы объектов в базе данных IBM Informix
Пространственная таблица Informix может содержать один или несколько пространственных столбцов, но в классе объектов в ArcGIS используется только один пространственный столбец. Пространственные столбцы определяются одним из пользовательских типов данных Informix Spatial DataBlade. Пространственный столбец принимает только данные с типом, который требуется для этого пространственного столбца. Например, столбец ST_Polygon отклонит целочисленные значения, символы и даже прочие типы неполигональной геометрии.
Когда ArcGIS создает класс пространственных объектов в Informix, создается также столбец Object ID. Столбец Object ID содержит целочисленные ненулевые уникальные значения, которые требуются клиентским приложениям ArcGIS для ведения учета выборки.
ArcGIS также добавляет при создании класса объектов в базе геоданных в Informix запись в таблицу geometry_columns. Приложения, использующие Informix Spatial DataBlade, отвечают за вставку записи в таблицу geometry_columns каждый раз при добавлении пространственного столбца в базу данных.
Указания по использованию существующих таблиц Informix с ArcGIS
Помимо ArcGIS, таблицы с пространственными столбцами в Informix могут создавать другие приложения. ArcGIS может использовать таблицы с пространственными столбцами, созданные другими приложениями или с помощью SQL (их иногда называют сторонними таблицами) при условии, что эти таблицы отвечают определенным требованиям, а именно:
- Таблица должна содержать столбец целочисленных ненулевых уникальных значений, поддерживаемый базой данных, для использования в качестве столбца Object ID.
- Таблица не должна содержать столбцы пользовательских типов за исключением столбца ST_Geometry.
- Таблица может содержать только один столбец ST_Geometry. Для работы с данными в таблице, которая содержит несколько столбцов ST_Geometry, создайте представление таблицы с только одним столбцом ST_Geometry.
- Таблица должна иметь только один ID пространственной привязки для всех записей в таблице.
- Для регистрации таблицы в базе геоданных необходимо быть владельцем таблицы. При регистрации таблицы в базе геоданных ArcGIS добавляет собственный столбец Object ID и поддерживает его значения.