Что происходит, когда вы создаете класс пространственных объектов с типом хранения геометрии SDO_GEOMETRY?

Когда вы создаете класс пространственных объектов с типом хранения SDO_GEOMETRY в базе геоданных, то происходит следующее:

Таблица со столбцом SDO_GEOMETRY создана.

Если указать ключевое слово конфигурации DBTUNE, которое имеет параметр GEOMETRY_STORAGE, установленный как SDO_GEOMETRY, при создании класса объектов в базе геоданных в Oracle, ArcGIS использует столбец SDO_GEOMETRY для поля геометрии.

Следующий пример класса объектов имеет уникальный идентификатор поля (ObjectID), имя, атрибуты населения и столбец геометрии SDO_GEOMETRY.

Имя

Тип данных

Null?

NAME

VARCHAR2(32)*

POPULATION

NUMBER(11)

SHAPE

MDSYS.SDO_GEOMETRY

OBJECTID

NUMBER(38)

NOT NULL

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

*NVARCHAR2(32) используется вместо VARCHAR2(32), если вы используете строки Unicode.

Для столбца SDO_GEOMETRY создается пространственный индекс.

По умолчанию, ArcGIS создает пространственный индекс R-tree для столбца SDO_GEOMETRY класса объектов. ArcGIS использует функцию Oracle - SDO_FILTER для выполнения пространственных запросов по классу объектов; поэтому пространственный индекс необходим для осуществления пространственных запросов.

ArcSDE автоматически удаляет и пересоздает пространственный индекс Oracle Spatial, созданный в ArcGIS, при каждом переключении режима класса объектов из LOAD_ONLY_IO в режим NORMAL_IO и обратно. Пространственные индексы, определенные с помощью приложения Oracle Spatial Index Advisor или созданные с использованием SQL, не удаляются при переключении режима класса объектов на LOAD_ONLY_IO в ArcGIS.

В представление метаданных Oracle Spatial добавляется запись.

Когда ArcGIS создаёт класс объектов, который содержит столбец SDO_GEOMETRY, при этом также добавляется необходимая запись метаданных Oracle Spatial в вид метаданных USER_SDO_GEOM_METADATA. Эти метаданные включают имя таблицы, имя столбца SDO_GEOMETRY, идентификатор пространственной привязки, и информацию о координатных измерениях.

При использовании ArcGIS для удаления класса объектов, метаданные Oracle Spatial также удаляются.

Координатное измерение задано.

Вы можете создать геометрию в ArcGIS как 2D (x,y), 2D с измерениями (x,y,m), 3D (x,y,z) или 3D с измерениями (x,y,z,m). При создании нового класса объектов со столбцом SDO_GEOMETRY, ArcGIS помещает информацию об измерении Oracle Spatial в столбец DIMINFO в представлении метаданных.

Публикуется столбец SDO_GEOMETRY.

При сохранении геометрии в базе геоданных, ArcGIS заполняет значение SDO_GEOMETRY из объекта API с названием SE_SHAPE. Объект SE_SHAPE может содержать простую и сложную геометрию, включая высоты, измерения, данные CAD, аннотации, и патчи поверхности. Тип данных SDO_GEOMETRY поддерживает поднабор этих геометрических свойств. Поскольку нет отображения один-к-одному компонент SDO_GEOMETRY и объекта SE_SHAPE, ArcGIS следует набору правил при хранении данных в таблицах Oracle Spatial:

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

ArcGIS не поддерживает неоднородные (с разными типами) коллекции геометрий в объекте SDO_GEOMETRY, и ArcGIS не кодирует элементы SDO_ETYPE 0 в объекте SDO_GEOMETRY. Элементы SDO_ETYPE 0 являются специфическими для приложений.

Дополнительный столбец добавляется к бизнес-таблице, если сохраняются свойства CAD и аннотаций.

Тип SDO_GEOMETRY не может хранить все возможные типы геометрических элементов, которые хранение в ArcGIS должно поддерживать. Когда необходимо хранение этих элементов (что определяется по выбранным флагам типа геометрии при создании класса объектов), ArcGIS добавляет столбец с названием SE_ANNO_CAD_DATA к бизнес-таблице. Используя пример класса объектов из первой секции данного раздела, бизнес-таблица будет содержать следующее:

Имя

Тип данных

Null?

NAME

VARCHAR2(32)*

POPULATION

NUMBER(11)

SHAPE

MDSYS.SDO_GEOMETRY

SE_ANNO_CAD_DATA

BLOB

OBJECTID

NUMBER(38)

NOT NULL

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

*NVARCHAR2(32) используется вместо VARCHAR2(32), если вы используете строки Unicode.

Когда ArcGIS определяет, что источником данных являются данные CAD, ArcGIS пишет простое геометрическое представление данных CAD в значение SDO_GEOMETRY и затем записывает неизмененные данные CAD в значение SE_ANNO_CAD_DATA. Если источник данных не имеет данных CAD, ArcGIS устанавливает значение SE_ANNO_CAD_DATA на NULL. Свойство SE_ANNO_CAD_DATA содержит данные из нескольких компонентов ArcGIS:

Пространственные запросы к классу объектов выполняются с использованием функций фильтра Oracle Spatial.

ArcGIS использует функцию SDO_FILTER в Oracle Spatial, чтобы выполнять первичный пространственный запрос. ArcGIS выполняет вторичный фильтр SDO_GEOMETRY на основе пространственного отношения, запрашиваемого приложением.

Приложения могут также включать функции первичного и вторичного фильтров Oracle Spatial в выражениях SQL WHERE, поддерживаемых в ArcGIS. Используя пространственные фильтры в выражении WHERE, приложения могут распространять пространственный запрос на сервер базы данных, сервер приложений ArcSDE, и на само приложение.

5/10/2014