Проверка геометрии

Проверка геометрии производится при помощи типа данных ST_Geometry посредством библиотек st_shapelib (Oracle) и st_geometry в PostgreSQL, IBM DB2 и Informix. После создания таблицы проверка выполняется при вставке или обновлении данных.

Существует два основных способа вставки данных в пространственные таблицы:

Функции конструктора определяются реализацией каждого пространственного типа, и они могут применять для проверки геометрии данных различные методы. Функции конструктора Esri и IBM ST_Geometry, а также ArcGIS API, используют для проверки геометрии данных библиотеку геометрии Esri. Другие пространственные типы, такие как SDO_Geometry, геометрия PostGIS и геометрия или география Microsoft SQL Server, имеют собственные функции конструктора и используют собственные правила проверки геометрии. Поэтому, следует изучить соответствующую документацию по Oracle, PostGIS или SQL Server, чтобы узнать, какие правила применяются при вставке или обновлении этих пространственных типов вне ArcGIS.

ArcGIS также проверяет геометрию при чтении данных. Недопустимые типы геометрии не могут быть отображены в ArcGIS.

Следующие правила проверки геометрии применяются к функциям конструктора Esri API, ST_Geometry, а также при чтении геометрии в ArcGIS:

Правила проверки для точечных форм (point shapes)

Правила проверки для простых линий (simple lines) или последовательностей линий (linestrings)

Правила проверки для линий (lines) или слабо структурированных последовательностей линий (spaghetti strings)

Правила проверки и операции для форм площадей (area shapes)

Идентификатор пространственной привязки (SRID)

Для классов объектов, использующих тип ST_Geometry, при попытке вставить значение с координатами, лежащими вне пределов идентификатора пространственной привязки (SRID), с которым была создана таблица, оператор INSERT даст сбой с подобным сообщением об ошибке:

СУБД

Сообщение об ошибке

Oracle

ERROR at line 1:
ORA-20004: Error generating shape from text (-112)
ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 42
ORA-06512: at "SDE.ST_POLYGON", line 69
ORA-06512: at line 1

PostgreSQL

ERROR: ESRI: error generating shape [-112]:

Informix

SQL Error (-937): Coordinates out of bounds in ST_PolyFromText.

DB2

GSE3416N Coordinate out of bounds

SQLite

Error: ST_Geometry failed with SDE error -139:
'The specified coordinate exceeds the valid coordinate range':[4]

Связанные темы

5/25/2014