Я изучаю пространственную базу данных оракула, но застрял на SDO_GEOMETRY
. На самом деле этот объект имеет следующую структуру:Разница между GTYPE и SDO_ELEM_INFO_ARRAY
CREATE TYPE sdo_geometry AS OBJECT(
SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES SDO_ORDINATE_ARRAY);
Я процитирую два атрибута SDO_GTYPE
и SDO_ELEM_INFO
из официальных оракула документов. SDO_GTYPE
:
SDO_GTYPE указывает тип геометрии. Допустимые типы геометрии соответствуют тем, которые указаны в модели геометрии объекта для OGIS простых функций для спецификации SQL
SDO_ELEM_INFO_ARRAY
(за исключением поверхностей.):
Этот атрибут позволяет узнать, как интерпретировать ординаты, хранящиеся в SDO_ORDINATES приписывать
Моя проблема в том, что я не был в состоянии отличить друг от друга. Разве это не тип геометрии Фактически, как мы интерпретируем координаты? Например, просмотрите следующий запрос insert
. Это первое говорит геометрия является 2D многоугольника, и после нескольких строк он просит, чтобы интерпретировать координаты, как круг:
INSERT INTO cola_markets VALUES(
4,
'cola_d',
SDO_GEOMETRY(
2003, -- 2-dimensional polygon
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,4), -- one circle
SDO_ORDINATE_ARRAY(8,7, 10,9, 8,11)
)
);
Пожалуйста, скажи мне, что случилось в моем восприятии. Спасибо за прочтение.
Понятно, что _polygon с отверстием is_ является двумерным многоугольником. Но, как же _circle_ быть двумерным многоугольником? Я не понимаю эту концепцию. Отдых в порядке. Спасибо за ответ. –
Документация Oracle говорит о 1003 и 2003 как полигоны, но на самом деле это любой закрытый элемент с внутренним и внешним пространством. – Rene
Это то, что я предполагал. Спасибо за разъяснения. Я отмечу, что ваш ответ принят. –