При подключении к источнику данных ArcGIS применяет некоторые правила. Когда ArcGIS подключается и считывает данные из базы данных или и облачного хранилища данных, применяются следующие правила:
Имена объектов
СУБД и облачные хранилища данных имеют различные требования к символам, используемым для названий объектов. Иногда база данных позволяет вам использовать неподдерживаемые символы в именах объектов, если вы предоставляете имя объекта, заключенное в разделители, такие как двойные кавычки. Однако ArcGIS не разграничивает имена объектов при запросе к базе данных, поэтому ArcGIS не может распознать эти имена.
Длина имени
ArcGIS может считывать и (в некоторых случаях) создавать объекты базы данных, такие как таблицы, виды и пользователи. Максимальная длина имени, которую ArcGIS допускает для этих объектов, указана в следующей таблице вместе с исключениями, когда они могут применяться.
Примечание:
Если ваша база данных позволяет использовать меньше символов, чем разрешает ArcGIS, вы будете ограничены именно количеством символов, разрешенным базой данных. Для определения ограничений имен объектов обратитесь к документации по используемой вами СУБД.
Указанное число знаков предполагает использование однобайтовых символов.
Тип объекта | Максимальное число символов, создаваемых ArcGIS* | Максимальное число символов, считываемых ArcGIS | Исключения |
---|---|---|---|
Имя базы данных | Не применимо ни к какой базе данных, кроме SQLite. 250 при создании в SQLite. | 250 при чтении из SQLite. 31 - при чтении из других баз данных. 127 при считывании из Amazon Redshift и Snowflake. | ArcGIS может считать имя базы данных, максимально допускаемое Oracle. Значения имен баз данных не применимы для SAP HANA.. Имя базы данных для SQLite состоит из пути к файлу, имени файла и расширения файла. Если база данных SQLite настроена на использование ST_Geometry или пространственного типа SpatiaLite, то расширение файла будет (.sqlite). Если база данных SQLite настроена как OGC GeoPackage, то расширение файла будет (.gpkg). |
Имя таблицы, класса объектов или представления | 128 158 при создании в SQLite. | 128 158 при чтении из SQLite. 127 при считывании из Redshift. | |
Имя индекса | 16 во всех базах данных, за исключением SQL Server и SQLite, для которых вы можете создать имена индексов длиной до 128 символов. | До ограничения базы данных. | Имена индексов не применяются в SAP HANA или в облачных хранилищах данных.. |
Имя поля (столбца) | 31 при создании в SQL Server, PostgreSQL, SAP HANA, Teradata и SQLite. 30 при создании в Db2 и Oracle. | 31 при чтении из PostgreSQL и SQLite. 30 при чтении из Db2. 128 при чтении из Snowflake или Google BigQuery. 127 при считывании из Redshift. Для других баз данных до ограничения в базе данных. | |
Имя пользователя | ArcGIS создает пользователей только в следующих базах данных. Показана максимальная длина имени пользователя.
| В зависимости от того, как вы подключаетесь, диалоговое окно Подключение к базе данных позволяет использовать до 31 символа. Инструмент геообработки Создать подключение к базе данных поддерживает количество, соответствующее ограничению базы данных, но поддерживается только базами данных, а не облачными хранилищами данных. | Значения имен пользователей не применимы для SQLite или BigQuery. |
Пароль | ArcGIS создает пароли для пользователей только в следующих базах данных. Показана максимальная длина пароля.
| 256 для всех поддерживаемых баз данных и облачных хранилищ данных, за исключением Teradata, для которых поддерживается только 31 символ и Redshift, для которых поддерживаются только 64 символа. | Значения паролей не применимы для SQLite или BigQuery. |
*Вы не можете использовать ArcGIS для создания объектов в облачных хранилищах данных.
Для BigQuery максимальная поддерживаемая длина имени набора данных по умолчанию составляет 31 символ. Максимальная поддерживаемая длина имени проекта - 30 символов.
Проверка геометрии
Когда вы создаете данные в базе с помощью клиента ArcGIS, ArcGIS проверяет геометрию на основе определенных правил. Если создаваемая в клиенте ArcGIS геометрия является недопустимой, ArcGIS не позволит разместить ее в базе данных.
Функции конструктора Esri и IBM ST_Geometry, а также ArcGIS API, используют для проверки геометрии данных библиотеку геометрии Esri. Поэтому даже если вы создаете геометрию Esri или IBM ST_Geometry с помощью SQL, применяются правила проверки и недопустимая геометрия не будет размещена в базе.
Другие пространственные типы, такие как SDO_Geometry, PostGIS geometry или geography и Microsoft SQL Server geometry или geography, имеют собственные функции конструктора и используют собственные правила проверки геометрии. Эти правила могут не совпадать с правилами ArcGIS. Клиенты ArcGIS проверяют геометрию при чтении данных и не отображают такую геометрию, которая нарушает правила проверки ArcGIS. Если вы подключаетесь к базе данных, которая содержит данные, созданные не в ArcGIS, необходимо помнить о применении правил ArcGIS.
Правила проверки для точек
Следующие правила проверки будут применяться к точечным объектам:
- Площадь и длина точек равны 0,0.
- Конверт одной точки равен значениям X, Y этой точки.
- Конверт из нескольких точек равен минимальному прямоугольнику, ограничивающему точки.
Правила проверки для простых линий или последовательностей линий
Следующие правила проверки будут применяться к простым линейным объектам:
- Каждая часть линии должна иметь, по меньшей мере, две различные точки.
- Каждая часть линии не должна пересекать сама себя. Начальная точка и конечная точка линии могут быть одинаковыми, но полученное замкнутое кольцо не будет считаться полигоном.
- Части линии могут касаться друг друга в конечных точках.
- Длина линии равна сумме длин всех ее частей.
Правила проверки для линий или слабо структурированных последовательностей линий
Следующие правила проверки будут применяться к более сложным линейным объектам:
- Линии могут пересекать сами себя.
- Каждая часть линии должна иметь, по меньшей мере, две различные точки.
- Длина линии равна сумме длин всех ее частей.
Правила проверки и операции для полигонов
- Висячие узлы недопустимы.
- Сегменты линий, составляющие полигон, должны быть замкнуты (при этом z-координаты начальной точки и конечной точки также должны совпадать) и не должны перекрещиваться.
- Если полигоны содержат пробелы, они должны полностью располагаться внутри внешней границы площади. Пробелы, находящиеся за пределами внешней границы, недопустимы.
- Пробел, имеющий одну общую точку с внешней границей, преобразуется в полигон.
- Несколько пробелов, имеющих общие точки, объединяются в один пробел.
- Составные полигоны не могут перекрываться. Однако две части могут касаться в одной общей точке.
- Составные полигоны не могут иметь общих границ.
- Если два кольца имеют общую границу, они сливаются в одно кольцо.
- В качестве длины геометрии рассчитывается общий периметр, включая границы всех пробелов в полигонах с пробелами.
- Вычислена площадь.
- Вычислен конверт.
- Точки полигона хранятся в базе по направлению против часовой стрелки, хотя клиенты ArcGIS могут обратить точки в любом направлении. Если создается полигон, содержащий координаты в направлении по часовой стрелке, ArcGIS изменяет это направление и записывает координаты против часовой стрелки.
В этом примере начальная точка – a, и координаты должны быть перечислены в порядке a,b,c,d,a.
- Полигон может иметь выемки, в тех местах, где пустоты внутри полигона касаются внешней границы.
- Полигоны с выемками имеют внутреннее кольцо, касающееся внешней границы. Они не считаются полигонами с пробелами.
- Если в полигоне имеется пробел, в первую очередь считывается внешняя граница. Точки пробелов хранятся в направлении, противоположном направлению внешней границы.
В примере на следующем рисунке внешняя граница описана в порядке a,b,c,d,a, а пробел – в порядке e,f,g,h,e. Весь полигон, как объект, хранится в виде a,b,c,d,a,e,f,g,h,e.
- Если два пробела касаются в одной общей точке, они считаются за один пробел, а не за два.
В приведенном примере две внутренние области являются единым пробелом, так как они имеют общую точку g.
- Как показано на следующем рисунке, сочетания обычных полигонов и полигонов с пробелами могут иметь достаточно сложную структуру. Внешняя граница представляет озеро с островом. На острове тоже есть небольшое озеро.
Можно представить такие полигоны как один, два или три объекта. Каждый полигон может храниться как отдельный объект. Большое озеро является полигоном с пробелом. Граница большого озера является внешней границей формы, тогда как остров представлен границей ее единственного пробела. Остров также является полигоном с пробелом. Граница острова является внешней границей, тогда как маленькое озеро представлено пробелом. Маленькое озеро является одним полигоном.
Если озера являются важными объектами, один полигон с пробелом может представлять большое озеро, а второй полигон – малое озеро. Также для отображения объектов можно использовать составные полигоны. Первой частью полигона будет большое озеро с пробелом, представляющим остров. Второй частью будет малое озеро.
- Нулевая геометрия допустима и действует как заполнитель. Они позволяют хранить атрибутивную строку без соответствующей геометрии. Например, нулевая геометрия может появиться как результат запроса пересечения двух непересекающихся полигонов.
Так как площади A и B не касаются друг друга, в результате запроса их пересечения будет возвращена пустая геометрия.
- Объекты обладают размерами. Объект, обладающий только координатами x и y, считается двухмерным. Объекты с z-координатами и измерениями являются трехмерными. Объект также может иметь нулевое измерение.
Пространственные метаданные
База геоданных хранит информацию о пространственных данных, которые в ней содержатся. Клиенты ArcGIS могут считывать информацию о типе классов объектов (например, точки, линии и полигоны), размерности (x-, y-, z- и m-координаты), пространственной привязке, уникальном идентификаторе и экстенте класса объектов из системных таблиц базы геоданных. Эти таблицы недоступны, если ArcGIS подключается к классу объектов в базе данных. Поэтому ArcGIS должен получать эти сведения из других источников.
При перетаскивании класса пространственных объектов (пространственной таблицы) на карту в ArcGIS Pro создается слой запроса. Определение слоя запроса в ArcGIS Pro происходит следующим образом:
- В базе данных запрашивается информация о пространственной таблице, в частности, размерность, пространственная привязка и тип геометрии.
- Если эта информация не определена для всей таблицы, ArcGIS Pro считывает первую строку таблицы и использует информацию, указанную для этого объекта.
- Если пространственная привязка, тип геометрии или размерность таблицы не могут быть определены по первой строке – например, таблица является пустой, или эта строка имеет пользовательскую пространственную привязку – нужная информация для определения слоя будет запрошена у пользователя.
- ArcGIS Pro запрашивает базу данных, чтобы найти непустую колонку для использования ее данных в качестве уникального идентификатора записей в определенной таблице. Если подходящий столбец не найден, определение ObjectID таблицы будет запрошено у пользователя.
- Наконец, ArcGIS Pro вычислит экстент данного слоя при добавлении его на карту.
Поскольку данные, отображаемые на карте, зависят от запроса, можно открыть определение слоя запросов и изменить его вручную. К примеру, если класс пространственных объектов содержит как точки, так и полигоны, можно выбрать нужный тип геометрии, открыв определение слоя запросов. Кроме того, если класс пространственных объектов содержит несколько пространственных столбцов, можно открыть определение слоя запроса и изменить запрос так, чтобы использовался другой столбец. Имейте в виду, что путем изменения запроса нельзя отобразить не поддерживаемые типы данных.