ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Больше...

Типы данных PostgreSQL, поддерживаемые в ArcGIS

  • Геометрические типы данных
  • Растровые типы данных

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

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

Когда вы создаете класс пространственных объектов или таблицу в ArcGIS либо добавляете столбец к существующей таблице или классу пространственных объектов с помощью ArcGIS, существуют 12 возможных типов данных, которые можно присваивать полям. Типы данных, не соответствующие этим типам, не могут напрямую использоваться в приложениях ArcGIS.

В первом столбце перечислены типы данных ArcGIS. Во втором столбце отображается тип данных PostgreSQL, который будет создан в базе данных. В третьем столбе показано, какие еще типы данных PostgreSQL соответствуют типам данных ArcGIS при их просмотре в ArcGIS.

Типы данных ArcGISСоздаваемые типы данных PostgreSQLДругие типы данных PostgreSQL, которые можно просматриватьПримечания

BLOB

BYTEA

DATE

TIMESTAMP WITHOUT ZONE

TIMESTAMP

DOUBLE

NUMERIC(p)

BIG SERIAL, DOUBLE PRECISION

Точность и масштаб, указанные в ArcGIS, могут повлиять на тип полученных данных, создаваемых в базе данных. Для получения более подробной информации см. раздел Типы данных полей ArcGIS.

FLOAT

NUMERIC(p)

Точность и масштаб, указанные в ArcGIS, могут повлиять на тип полученных данных, создаваемых в базе данных. Для получения более подробной информации см. раздел Типы данных полей ArcGIS.

GEOMETRY

ST_GEOMETRY or GEOMETRY (PostGIS)

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

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

Для использования типа геометрии PostGIS необходимо установить PostGIS в кластер базы данных PostgreSQL и активировать работу с PostGIS в самой базе данных. Более подробная информация находится в документации по PostgreSQL.

GLOBAL ID

VARCHAR(38)

Поддерживается только базами геоданных.

GUID

VARCHAR(38)

LONG INTEGER

INTEGER

SERIAL

OBJECT ID

INTEGER в базе геоданных

SERIAL в базе данных

В ArcGIS тип ObjectID соответствует столбцу с идентификаторами записей (ID) таблицы (или класса объектов). В таблице может быть только один.

RASTER

BYTEA or ST_RASTER

Растры поддерживаются только базами геоданных. Тип создаваемых данных PostgreSQL зависит от ключевого слова конфигурации, использованного при создании каталога растров, набора растровых данных или набора данных мозаики.

Вам надо отдельно настроить ST_Raster в базе геоданных, если вы собираетесь его использовать. Инструкции см. в разделе Установка ST_Raster в PostgreSQL.

SHORT INTEGER

SMALLINT

REAL

TEXT

CHARACTER VARYING

CHARACTER, VARCHAR, TEXT

Типы данных PostgreSQL, поддерживаемые в ArcGIS

Если в таблице имеется столбец с типом данных, который не поддерживается в ArcGIS, можно преобразовать этот столбец в текст. Однако это следует делать, только если вы хотите увидеть значения в этом столбце; если вы собираетесь использовать эти значения в анализе, этого делать нельзя. Например, можно выполнить выражение SELECT, чтобы выбрать столбцы в tableb и преобразовать десятичный столбец (total) в текст:

SELECT id, name, total::text
FROM me.mydb.tableb;

Геометрические типы данных

Как указано в таблице, ArcGIS создает и может работать в PostgreSQL с двумя типами геометрических данных: Esri ST_Geometry или PostGIS Geometry. Более подробная информация о них приведена в следующих двух разделах.

ST_Geometry

Ниже приводится общее описание пространственного типа данных ST_Geometry. Сведения о реализации в PostgreSQL см. в разделе ST_Geometry в PostgreSQL.

Тип данных ST_Geometry использует спецификацию пользовательских типов данных SQL 3 (UDT), что позволяет создавать столбцы, в которых могут храниться пространственные данные, например, улицы, земельные участки, достопримечательности. Он обеспечивает поддержку SQL-доступа к базам геоданных и базам данных в соответствии со стандартами International Organization for Standards (ISO) и Open Geospatial Consortium, Inc. (OGC). Данный вид хранения расширяет возможности базы данных, обеспечивая хранение для объектов (точек, линий и полигонов), которые представляют графические объекты. Оно было разработано для эффективного использования ресурсов баз данных, для совместимости с объектами баз данных, такими, как реплики и разделы, и для предоставления быстрого доступа к пространственным данным.

ST_Geometry является абстрактным невызываемым суперклассом. Однако его подклассы могут быть вызваны (инициализированы). Вызванный тип данных – это тип данных, который может быть определен как столбец таблицы; в него могут быть добавлены значения этого типа.

Хотя вы можете определить столбец в виде типа ST_Geometry, вы не добавляете значения ST_Geometry в этот столбец, поскольку он не может быть вызван. Вместо этого вы добавляете значения подкласса.

Следующая схема демонстрирует иерархию типа данных ST_Geometry и его подклассов.

ST_Geometry
Суперкласс ST_Geometry и его подклассы

Подклассы ST_Geometry разделены на две категории: подклассы основной геометрии и подклассы однородных наборов. Основная геометрия включает: ST_Point, ST_LineString и ST_Polygon, а однородные наборы включают ST_MultiPoint, ST_MultiLineString и ST_MultiPolygon. Как ясно из названий, наборы однородных элементов являются наборами базовых геометрий. Помимо добавлений одинаковых свойств с базовой геометрией, однородные наборы имеют некоторые собственные свойства.

Каждый подкласс хранит тип геометрии, отображенный в его имени; например, ST_MultiPoint хранит мультиточки. Список подклассов и их описание приведены в следующей таблице:

ПодтипОписание

ST_Point

  • Геометрия с размерностью 0, которая занимает отдельное местоположение в координатном пространстве.
  • Имеет одиночное значение координат x,y; всегда является простым и имеет значение границы NULL.

ST_LineString

  • Одномерный объект, хранящийся как последовательность точек, которая определяет линейно-интерполированный путь.
  • Объекты ST_LineString имеют длину.
  • ST_LineString является простым, если он не имеет самопересечений.
  • Конечные точки (граница) замкнутого ST_LineString занимают одну и ту же точку в пространстве.
  • ST_LineString является кольцом, если он одновременно замкнутый и простой.
  • Конечные точки обычно формируют границу ST_LineString, кроме того случая, когда ST_LineString замкнут, в этом случае граница отсутствует (NULL).
  • Внутренняя часть ST_LineString – это связанный путь, который лежит между конечными точками, кроме того случая, когда ST_LineString замкнут; в этом случае внутренняя часть является непрерывной.

ST_Polygon

  • Двумерная поверхность, хранящаяся как последовательность точек, определяющих ее внешнее ограничивающее кольцо, а также отсутствие или несколько внутренних колец.
  • ST_Polygon имеет площадь и всегда является простым.
  • Внешние и любые внутренние кольца определяют границу ST_Polygon, а пространство, заключенное между кольцами, определяет внутреннюю часть ST_Polygon.
  • Кольца объекта ST_Polygon могут пересекаться в касательной точке, но не могут пересекаться (перекрещиваться).

ST_MultiPoint

  • Набор элементов ST_Point.
  • Имеет размерность 0.
  • ST_MultiPoint является простым, если ни один из его элементов не занимает одно и то же координатное пространство.
  • Граница у ST_MultiPoint отсутствует (NULL).

ST_MultiLineString

  • Набор элементов ST_LineString.
  • Объекты ST_MultiLineString имеют длину.
  • Объекты ST_MultiLineString являются простыми, если они пересекаются только в конечных точках элементов ST_LineString.
  • Объекты ST_MultiLineString не являются простыми, если внутренние части элементов ST_LineString пересекаются.
  • Границей ST_MultiLineString являются непересекающиеся конечные точки элементов ST_LineString.
  • Объект ST_MultiLineString является замкнутым, если все его элементы ST_LineString замкнуты.
  • Граница ST_MultiLineString отсутствует (NULL), если все конечные точки всех элементов пересекаются.

ST_MultiPolygon

  • Набор полигонов.
  • Объекты ST_MultiPolygon имеют площадь.
  • Границей ST_MultiPolygon является суммированная длина всех внутренних и внешних колец его элементов.
  • Внутренняя часть ST_MultiPolygon определяется, как суммарные внутренние части всех его элементов ST_Polygon.
  • Граница элементов объекта ST_MultiPolygon может пересекаться только в касательной точке.

Подтипы ST_Geometry

Учтите, что каждый подкласс наследует свойства суперкласса ST_Geometry, но также имеет собственные свойства. Функции, которые работают с типом данных ST_Geometry, принимают любой из типов элементов подклассов. Однако некоторые функции определены на уровне подклассов, и принимают только заданные подклассы. Например, функция ST_GeometryN принимает в качестве входных параметров только значения подтипов ST_MultiLinestring, ST_MultiPoint или ST_MultiPolygon.

PostGIS Geometry

PostGIS – это продукт, который расширяет возможности базы данных PostgreSQL для работы с пространственными данными. PostGIS соответствует спецификации простых объектов (Simple Features specification) для языка SQL, разработанной Open Geospatial Consortium, Inc. (OGC). В этом продукте используется стандартные двоичные (WKB) и текстовые (WKT) представления геометрии.

В PostGIS имеется два пространственных типа: geometry и geography. В ArcGIS поддерживается только тип geometry.

При использовании типа хранения geometry в PostGIS с ArcGIS нужно учесть следующее:

  • Нужно использовать шаблон базы данных PostGIS для создания базы данных PostgreSQL, используемой для базы геоданных, или активировать PostGIS в базе данных.
    Примечание:

    Если база геоданных создается с использованием инструмента геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase), ваша база данных будет создана с использованием шаблона, отличающегося от шаблона PostGIS. Поэтому, если вы хотите использовать тип геометрии PostGIS, следует создать базу данных вручную, используя шаблон PostGIS. После этого при запуске инструмента геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) можно выбрать существующую базу данных, в которой будет создана база геоданных.

  • Пользователь sde и любой пользователь, создающий данные в базе геоданных, должен получить разрешения для используемых таблиц PostGIS.
  • Классы создаваемых пространственных объектов могут использовать только пространственные привязки, перечисленные в таблице PostGIS public.spatial_ref_sys. Если указана привязка, не перечисленная в таблице, класс объектов создан не будет.
  • Следует указать ключевое слово конфигурации, которое содержит параметр GEOMETRY_STORAGE, присвоенный для PG_GEOMETRY, чтобы создать класс объекта, использующий тип геометрии PostGIS.
  • Нельзя переименовывать пространственные таблицы, сохраненные с использованием типа геометрии PostGIS. Данное ограничение связано с тем, что не существует функции PostGIS для обновления имени таблицы в public.geometry_columns.

Для использования типа геометрии PostGIS следует установить PostGIS. PostGIS устанавливается после установки PostgreSQL. Убедитесь, что вы установили версию PostGIS, поддерживаемую версией ArcGIS, с которой вы работаете.

При установке PostGIS создается шаблон базы данных PostGIS в кластере базы данных PostgreSQL. Используйте шаблон базы данных PostGIS для создания базы данных, в которой будет храниться ваша база геоданных.

Предоставление прав на создание столбцов геометрии PostGIS

Если для базы данных разрешено использование PostGIS, в общей схеме будут созданы две таблицы – geometry_columns и spatial_ref_sys. Как минимум, нужно выдать права SELECT, INSERT, UPDATE и DELETE для столбцов таблицы geometry_columns, а также выбрать SELECT для таблицы spatial_ref_sys для пользователя sde и всех пользователей, которые будут создавать данные в базе геоданных.

GRANT select, insert, update, delete 
ON TABLE public.geometry_columns 
TO <user_name>;

GRANT select
ON TABLE public.spatial_ref_sys
TO <user_name>;

Создание класса пространственных объектов, использующего геометрию PostGIS

ArcGIS использует настройки параметров конфигурации в таблице sde_dbtune для определения типа пространственных данных, используемого при создании класса пространственных объектов. Этот параметр имеет название GEOMETRY_STORAGE. В базах геоданных, работающих в базах данных PostgreSQL, используют один из двух типов хранения геометрии: ST_GEOMETRY или PG_GEOMETRY (значение параметра типа хранения PostGIS geometry). Таким образом, если нужно создать класс объектов с использованием ArcGIS на базе типа хранения PostGIS geometry, следует указать ключевое слово конфигурации, которое содержите параметр GEOMETRY_STORAGE со значением PG_GEOMETRY.

По умолчанию новы классы пространственных объектов используют хранение ST_Geometry. Если нужно сохранить большинство данных с типом хранения PostGIS, измените параметр GEOMETRY_STORAGE в ключевом слове конфигурации DEFAULTS в таблице sde_dbtune на PG_GEOMETRY. Или если вы хотите хранить только часть классов пространственных объектов в типе геометрии PostGIS, то вы можете указать ключевое слово конфигурации PG_GEOMETRY при создании класса объектов. При экспорте из базы геоданных ключевое слово PG_GEOMETRY выглядит следующим образом:

##PG_GEOMETRY
GEOMETRY_STORAGE    "PG_GEOMETRY"
UI_TEXT             "User Interface text description for POSTGIS geometry storage" 
END

Остальные параметры хранения будут взяты из ключевого слова DEFAULTS. Более подробно о ключевых словах конфигурации и параметрах см. в следующих разделах:

  • Ключевые слова конфигурации
  • Параметры конфигурации в PostgreSQL

Использование существующих таблиц геометрии

ArcGIS может использовать таблицы, содержащие столбцы геометрии формата PostGIS, созданные вне ArcGIS другими приложениями или при помощи SQL (которые иногда называют таблицами третьих лиц) при условии, что эти таблицы соответствуют следующим условиям.

  • Каждая таблица должна содержать один столбец геометрии. Если нет, определите слой запроса или представление, которые будут содержать только один пространственный столбец.
  • Таблицы не должны иметь других столбцов, тип которых задается пользователем.
  • Таблицы должны иметь один тип геометрии (точки, линии или полигоны), при этом геометрия может быть составной.
  • В каждой таблице необходимо наличие столбца с целочисленными, уникальными значениями (не NULL), которые можно использовать в качестве идентификатора строки.
  • В каждой таблице должен присутствовать пространственный индекс.

Сведения о создании таблиц со столбцом PostGIS с помощью SQL находятся в документации к PostGIS.

Можно подключиться к базе данных PostgreSQL, содержащей таблицы PostGIS, через ArcGIS for Desktop и зарегистрировать их в базе геоданных. Дополнительную информацию см. в разделе Регистрация таблицы в базе геоданных.

Растровые типы данных

Для хранения растров в базе геоданных на PostgreSQL вы можете использовать типы данных bytea или ST_Raster. По умолчанию используется bytea. Если вы хотите использовать ST_Raster, необходимо настроить базу геоданных.

Bytea

Bytea – это тип данных в виде бинарной строки переменной длины, используемый в PostgreSQL. Он похож на BLOB. Более подробная информация об этом типе данных имеется в документации к PostgreSQL.

ST_Raster

ST_Raster – это определяемый пользователем тип данных, который можно установить в многопользовательских базах геоданных, чтобы обеспечить SQL-доступ к растровым данным.

Чтобы использовать тип ST_Raster, необходимо настроить его в базе данных.

Подробные сведения об определении объекта типа ST_Raster см. в разделе Тип данных ST_Raster.

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2019 Esri. | Конфиденциальность | Правовая информация