Пространственные привязки

Пространственные привязки содержат систему координат для значений x, y и z. В многопользовательских базах геоданных пространственная привязка также включает в себя значения допуска и разрешения. Вся эта информация помогает указать, какую поверхность Земли представляют фигуры на плоской карте.

У каждой пространственной привязки есть идентификатор (который также называют системным, идентификатор пространственной привязки или SRID) или well-known текстовое определение системы координат. Существуют стандартные идентификаторы, например идентификаторы определенные группой European Petroleum Survey Group (EPSG) или компанией Esri, но идентификатор для пространственных привязок не всегда является стандартным. Это имеет значение при перемещении пространственных данных между базами данных. Дополнительные сведения см. в разделе "Как система пространственных привязок используется в ArcGIS".

При создании класса пространственных объектов в ArcGIS, ему назначается система пространственной привязки с определенным идентификатором SRID. Если пространственная привязка не назначена, класс объектов будет иметь неизвестную пространственную привязку. Эта пространственная привязка и SRID будут действительны для всех строк в классе пространственных объектов.

Если пространственная таблица создается непосредственно в базе данных (вне приложения ArcGIS), каждой записи в таблице можно присвоить свою пространственную привязку и SRID. Тем не менее, при работе с этими таблицами базы данных в ArcGIS, приложение распознает только одну пространственную привязку и SRID для всей таблицы. Определив слой запроса, можно указать, какой именно SRID будет использоваться – тогда будут доступны все строки с этим SRID. Иначе ArcGIS считывает SRID первой строки таблицы, и в ArcGIS будут доступны только строки, для которых определен этот SRID.

Таблицы пространственных привязок в многопользовательских базах геоданных

В многопользовательских базах геоданных (и базах данных Oracle и PostgreSQL с установленным типом ST_Geometry) все системы пространственных привязок хранятся в системной таблице базы геоданных.

Тип базы данных и тип хранения

Системная таблица базы геоданных

Oracle (ST_Geometry)

sde.st_spatial_references

Oracle (SDO_Geometry или SDEBINARY)

sde.spatial_references

PostgreSQL (ST_Geometry и PostGIS Geometry)

public.sde_spatial_references

В этой таблице также есть вID с возможность редактирования (sde.st_spatial_references), в который можно вставлять пространственные привязки.

Informix (ST_Geometry)

sde.spatial_references

DB2 (ST_Geometry)

db2gse.st_spatial_reference_systems (это системный вид)

SQL Server (Geometry, Geography и SDEBINARY)

sde.spatial_references

Система пространственной привязки должна существовать в таблице пространственной привязки, чтобы ее можно было использовать с вашими данными.

Начиная с ArcGIS 10.1 системная таблица базы геоданных, используемая для типа ST_Geometry в Oracle и PostgreSQL заполняется системами пространственных привязок, которые используют коды EPSG в качестве идентификаторов пространственных привязок (SRID). В обновленных базах геоданных в Oracle и PostgreSQL системы пространственных привязок добавляются в таблицы sde.st_spatial_references и public.sde_spatial_references.

Определение всех столбцов в таблице пространственной привязки каждой СУБД см. в соответствующих разделах о системных таблицах:

Более подробноБолее подробно:

Далее представлена техническая информация об использовании системы пространственной привязки в базе геоданных:

Внутренние функции используют параметры системы пространственной привязки для преобразования и масштабирования каждой координаты геометрии с плавающей запятой в положительное 64-битное целое число до их сохранения. При извлечении координат восстанавливается их изначальный формат с плавающей запятой.

Координаты с плавающей точкой преобразуются в целые числа за счет вычитания фальшивых значений x и y, что позволяет получить фальшивые исходные данные, масштабирования за счет умножения значений x и y, добавления половины единицы и округления остатка.

Дополнительные координаты z и измерения обрабатываются аналогично, но при этом они преобразуются со значениями z и m, и масштабируются с единицами z и m соответственно.

Таблицы пространственных привязок в базах данных

Базы данных, использующие тип геометрии SQL (кроме баз данных Oracle и PostgreSQL с установленным типом ST_Geometry), не содержат системной таблицы ArcSDE. У каждой СУБД есть собственная системная таблица для хранения пространственных привязок. В целом, эти таблицы хранят системный текст и идентификатор системы координат, но не хранят значения точности и допуска.

Большинство баз данных используют коды EPSG для своих идентификаторов пространственных привязок:

Более подробную информацию см. в документации по своей СУБД.

Как система пространственной привязки используется в ArcGIS

При создании класса объектов в ArcGIS вы выбираете пространственную привязку. При сохранении данных в базе геоданных ArcGIS вычисляется x-, y-, z- и m-единицы и смещения по умолчанию на основе выбранной пространственной привязки.

При вставке или импорте данных в базу данных или многопользовательскую базу геоданных в ArcGIS for Desktop, ArcGIS берет текстовое описание и идентификатор системы координат входных данных, а также допуск и разрешение, если они доступны, и сравнивает их со значениями в системной таблице пространственных привязок. Если найдено совпадение, используется существующая пространственная привязка. Если совпадение не найдено (например, если во входящих данных есть пользовательская пространственная привязка), то дальнейшее поведение зависит от пространственного типа, используемого для пространственного столбца таблицы, созданного в целевой базе данных или базе геоданных.

В следующей таблице указано, какие SRID используются в целевой базе данных (PostgreSQL, Oracle, SQL Server или Netezza) при импорте или вставке пространственных данных. Слова известно и неизвестно указывают, можно ли сопоставить пространственную привязку в исходных данных с существующей пространственной привязкой в целевой базе данных.

Целевая база данных

Источник

ST_Geometry

PostGIS Geometry

Oracle SDO_Geometry

SQL Server Geometry

SQL Server Geography

Netezza spatial

Известный код EPSG со столбцом ST_Geometry, SDEBINARY, PostGIS Geometry, SDO_Geometry, SQL Server Geometry, SQL Server Geography или Netezza spatial

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Известный код EPSG с пользовательским допуском и/или точностью со столбцом ST_Geometry, SDEBINARY или Netezza spatial

SRID больше 300 000 добавляется в системную таблицу ArcSDE.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Код EPSG используется как идентификатор пространственной привязки и хранится с геометрией.

Известная система координат Esri со столбцом ST_Geometry, SDEBINARY или Netezza spatial

Код Esri используется как идентификатор пространственной привязки и хранится с геометрией.

ID задан как –1.

ID имеет значение NULL.

Код Esri используется как идентификатор пространственной привязки и хранится с геометрией.

Системы координат Esri используются для систем координат проекций. Так как системы координат проекций не могут использоваться с типом SQL Server Geography, возникает ошибка, а данные не импортируются.

Код Esri используется как идентификатор пространственной привязки и хранится с геометрией.

Неизвестная система координат со столбцом ST_Geometry, SDEBINARY, PostGIS Geometry, SDO_Geometry, SQL Server Geometry или Netezza spatial

SRID больше 300 000 добавляется в системную таблицу ArcSDE.

ID задан как –1.

ID имеет значение NULL.

ID задан как 0.

Возникает ошибка, а данные не импортируются.

ID задан как 500000.

Пользовательская система координат Oracle со столбцом SDO_Geometry

SRID больше 300 000 добавляется в системную таблицу ArcSDE.

ID задан как –1.

Используется пользовательский ID Oracle, если он задан в источнике. Если ID не задан, для SRID в целевой базе данных задается значение NULL.

ID задан как 0.

Возникает ошибка, а данные не импортируются.

Возникает ошибка, а данные не импортируются.

Пользовательская система координат Oracle со столбцом PostGIS Geometry

SRID больше 300 000 добавляется в системную таблицу ArcSDE.

Используется пользовательский ID PostGIS, если он задан в источнике. Если ID не задан, в целевой базе данных для него задается значение –1.

ID имеет значение NULL.

ID задан как 0.

Возникает ошибка, а данные не импортируются.

Возникает ошибка, а данные не импортируются.

При вставке или импорте данных в базу DB2 или Informix, приложение ArcGIS также проверяет соответствие в таблице пространственных привязок. Если соответствие не найдено, в таблицу пространственных привязок добавляется запись с новой информацией. Дополнительная информация об используемых идентификаторах приведена в документации IBM.

Пространственные данные с неизвестной пространственной привязкой нельзя опубликовать как сервис в ArcGIS. Для публикации данных создайте слой запроса и укажите для него пространственную привязку.

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

9/11/2013