ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

数据库数据和 ArcGIS

  • 对象名称
  • 几何验证
  • Spatial 元数据

连接到数据源时,ArcGIS 会应用某些规则。ArcGIS 连接到数据库中的数据并进行读取时,会应用下列规则:

对象名称

数据库管理系统对于对象名称可以接受的字符具有不同的定义。大部分对象名称必须以字母开头,并且不可以包含空格、反斜线或 DBMS 保留关键字。部分对象名称允许包含正斜线 (/)、下划线 (_)、美元符号 ($)、破折号 (-)、点 (.) 等特殊字符以及这些字符的混合。有时,如果您提供用分隔符(例如双引号)括起来的对象名称,DBMS 会允许使用包含特殊字符、保留关键字、强制混合字符、大写字符或小写字符的名称。

但是,ArcGIS 并不分隔对象名称。如果要在 ArcGIS 中使用,请勿创建任何需要分隔符的表、要素类、数据库、用户*、角色或其他对象名称。可以在数据库中创建对象,但不能从 ArcGIS 访问该对象。

*包含特殊字符的 SQL Server 用户名会被分隔,以便完全支持 Active Directory 组和 Windows 验证的登录帐户。

名称长度

ArcGIS 可以读取并(在某些情况下)创建数据库对象(例如表、视图和用户等)。ArcGIS 允许这些对象使用的最大名称长度列于此处。

假设所列字符的数量是使用 ANSI 文本的结果。UTF-8 字符使用至少两倍于 ANSI 字符的字节数,因此允许的字符数将减少。

ALTIBASEDAMENGDB2InformixNetezzaOraclePostgreSQLSAP HANASQL ServerTeradata

数据库名称

31

31

8

31

31

30

31

31

31

31

字段(列)名称

31

31

31

31

31

30

31

31

31

31

索引名称

40

128

128

128

NA

30

63

127

128

128

密码

22(Windows 中的 ALTIBASE)

16(非 Window 操作系统中的 ALTIBASE)

31

31

31

31

31

31

127

31

30

表或要素类的名称

40

128

128

128

128

30

63

127

128

128

用户名

31

31

30

31

31

30

31

31

31

31

视图名称

40

128

128

128

128

30

63

127

128

128

几何验证

使用 ArcGIS 客户端在数据库中创建数据时,ArcGIS 会根据特定的规则验证几何。如果您在 ArcGIS 客户端中建立的几何无效,则 ArcGIS 不允许将其插入到数据库中。

创建要素时,Esri 和 IBM ST_Geometry 构造函数以及 ArcGIS API 使用 Esri 形状库验证几何数据。因此,即使使用 SQL 创建 Esri 或 IBM ST_Geometry 形状,仍将应用验证规则,无效的几何同样不会被提交至数据库。

其他空间类型(例如 SDO_Geometry、PostGIS 几何和 Microsoft SQL Server 几何或地理)具有自己的构造函数,所以使用自己的地理验证规则。这些规则也许与 ArcGIS 所应用的规则不同。ArcGIS 客户端会在读取数据时验证几何,并且不会显示违反 ArcGIS 几何验证规则的几何。如果要连接到的数据库包含于 ArcGIS 外部创建的数据,则需要注意 ArcGIS 所应用的规则。

针对点的验证规则

  • 点的面积和长度为 0.0。
  • 单个点的包络矩形等于该点的 x,y 值。
  • 多部件点的包络矩形是最小边界框。

针对简单线或线串的验证规则

  • 各部件必须至少具有两个不同的点。
  • 各部件不可以与自身相交。起始点和终止点可以相同,但是不会将生成的环视为面。
  • 各部件可彼此相接于端点。
  • 长度是所有部件的长度的总和。

针对线或管 (spaghetti) 状线串的验证规则

  • 线可以与自身相交。
  • 各部件必须至少具有两个不同的点。
  • 长度是所有部件的长度的总和。

针对面的验证规则和操作

  • 悬挂线无效。
  • 确认构成面的线段闭合(起点和终点的 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。

  • 面和带有孔洞的面的组合可能变得相当复杂,如下图所示。外边界是一个带有岛的湖。在岛上有一个小湖。

    嵌套面

    可以将这些面表示为一个、两个或三个要素。可以将各个面分别存储为单独的要素。较大的湖是一个圆环面。大湖的边界是外边界,而岛是单个圆环孔洞的边界。该岛也是一个圆环面。相对于小湖,岛的边界是外边界,而小湖是孔洞。小湖是一个单一面。

    如果这些湖是重要的要素,则可用一个带有孔洞的要素表示大湖,而另一个形状表示小湖。还可使用多部件面表示该要素。第一个面部件是带有表示岛的圆环孔洞的大湖。第二个部件是小湖。

  • Nil 几何有效并充当占位符。它们允许属性行中不含有相应几何。例如,在请求两个不相交面的相交部分时就会得到 nil 几何。

    不相交面产生一个 nil 几何

    因为区域 A 和 B 不接触,所以相交查询的结果会产生空几何。

  • 要素具有维度。仅具有 x,y 坐标的要素被视为是二维的。具有 z 坐标或测量值的要素是三维的。要素还可能拥有 nil 测量值。

Spatial 元数据

地理数据库会存储关于其所包含的空间数据的元数据。ArcGIS 客户端可从地理数据库系统表中读取有关要素类实体类型(例如,点、线、面)、维数(x、y、z 和 m 坐标)、空间参考、唯一标识符和要素类范围的信息。在 ArcGIS 连接到数据库中的要素类时不能使用此类表。因此,ArcGIS 必须通过其他来源获取该信息。

将要素类(空间表)拖放到 ArcMap 中时,即相应地创建了一个查询图层。要定义查询图层,ArcMap 将执行以下操作:

  1. 它将查询数据库以获取有关空间表的信息,例如维数、空间参考和几何类型。
  2. 如果没有为整个表定义这些信息,则 ArcMap 将读取表中的第一行并使用来自该要素的信息。
  3. 如果空间参考、几何类型或维数无法通过查看第一行来确定(例如,如果表中不包含数据或者行正在使用一个自定义的空间参考),则系统将提示您提供这些信息以用于图层定义。
  4. ArcMap 将查询数据库以找到可在特定表中用作行的唯一标识符 (ObjectID) 的非空列。 如果没有找到符合条件的行,系统将提示您为表定义 ObjectID。
  5. 最后,在您将图层添加到地图后,ArcMap 将计算该图层的范围。

由于显示在地图中的内容取决于查询图层,因此可以打开查询图层定义并对其进行更改。例如,如果要素类包含点和面,则可以打开查询图层定义并选择要显示的几何类型。同样,如果要素类包含多个空间列,则可以打开查询图层定义并更改查询以包括其他任一空间列。但请注意,不能通过更改查询来显示不支持的数据类型。

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明