定义要素类属性
创建新要素类时,必须指定多个将定义其结构的要素类属性。
大多数情况下,最佳选项是接受由“创建要素类”向导所提供的这些属性的默认值。不过,此部分将对每个要素类属性进行说明,以便您能够了解什么时候以及为什么需要使用值(而不是默认值),以及了解更改那些值将如何影响数据。
能否创建适当的要素类以适合数据模型,将取决于以下要素类属性:
名称/别名
要素类名称是标识要素类的唯一句柄。为要素类命名时最常用的方式是大小写混写或使用下划线,例如,“MajorRoads”或“Major_Roads”。
创建要素类时,应为其指定一个名称,以指明要素类中所存储的数据。要素类名称在地理数据库中必须唯一,不能存在多个同名的要素类。同一地理数据库中的所有要素类均需符合此要求,即使是与某一要素数据集中的其他要素类进行分组的那些要素类,也将如此。要素类不得同名,即使位于不同的要素数据集中,也不得同名。
但您在 ArcGIS Desktop 中创建要素类时所指定的名称与地理数据库中显示的要素类名称不同。地理数据库会追加数据库的名称以及要素类的存储架构的名称。这称为全限定要素类名称。例如,如果用户 Werther 在 SDE 数据库中创建了一个名为 alpacas 的要素类,则该要素类在地理数据库中的名称为
sde.werther.alpacas
因此,其他用户可以创建名为 alpacas 的要素类,因为他们创建的要素类会在要素类名称中追加相应的用户名。例如,如果用户 Gretchen 创建了自己的 alpacas 要素类,则数据库中的名称为
sde.gretchen.alpacas
但建议您不要重复使用要素类名称,即使它们会存储在不同的架构或数据库中。在此示例中,如果两个要素类都包含 alpacas 的相关信息,则没必要创建两个单独的要素类。如果这两个要素类包含的数据明显不同,则应从要素类名称中反映出来。
在存储于 Informix 中的地理数据库中,即使将要素类存储在单独的架构中,这些要素类也不得使用相同的名称。
其他规则
- 名称必须以字母开头,不能是数字或者星号 (*) 或百分号 (%) 等特殊字符。
- 名称不应包含空格。
如果表或要素类的名称包含两部分,则用下划线 (_) 连接各单词,如 garbage_routes。
- 名称不应包含保留字,如 select 或 add。
有关其他保留字,请查阅 DBMS 文档。
- 要素类名称和表名称的长度取决于基础数据库。文件地理数据库要素类的最大名称长度为 160 个字符。请确保查阅 DBMS 文档以获得最大的名称长度。
注:不支持具有以下前缀的表名或要素类名:
- “gdb_”
- “sde_”
- “delta_”
别名
在地理数据库中创建表或要素类时,可以为其指定别名。别名就是一个替代名称。如果为表或要素类指定一个别名,则此名称就是用户将表或要素类添加到 ArcMap 时将会看到的名称。用户仍然可以转到“图层属性”对话框的“源”选项卡查看表或要素类的名称。
要素类的类型
矢量要素(带有矢量几何的地理对象)是一种常用的地理数据类型,其用途广泛,非常适合表示带有离散边界的要素(例如街道、州和宗地)。要素是一个对象,可将其地理制图表达(通常为点、线或面)存储为行中的一个属性(或字段)。在 ArcGIS 中,要素类是数据库表中存储有公共空间制图表达和属性集的要素的同类集合,例如,线要素类用于表示道路中心线。
创建要素类时,将要求您设置要素的类型以定义要素类的类型(点、线、面等)。
通常,要素类是点、线或面的专题集合,但存在七种要素类类型。在数据库和地理数据库中支持前三种类型。仅地理数据库支持后四种类型。
- 磅: 表示过小而无法表示为线或面以及点位置(如 GPS 观测值)的要素。
- 线:表示形状和位置过窄而无法表示为区域的地理对象(如,街道中心线与河流)。也使用线来表示具有长度但没有面积的要素,如等值线和边界。
- 面: 一组具有多个边的面要素,表示同类要素类型(如州、县、宗地、土壤类型和土地使用区域)的形状和位置。
- 注记: 包含表示文本渲染方式的属性的地图文本。除了每个注记的文本字符串,还包括一些其他属性(例如,用于放置文本的形状点、其字体与字号以及其他显示属性)。注记也可通过要素进行连接,并可包含子类。
- 尺寸注记:一种可显示特定长度或距离(例如,要指示建筑物某一侧或地块边界或两个要素之间距离的长度)的特殊注记类型。在 GIS 的设计、工程和公共事业应用中,经常会使用尺寸注记。
- 多点:由多个点组成的要素。多点通常用于管理非常大的点集合数组(如激光雷达点聚类),可包含数以亿计的点。对于此类点几何使用单一行是不可行的。将这些点聚类为多点行,可使地理数据库能够处理海量点集。
- 多面体:一种 3D 几何,用于表示在三维空间中占用离散区域或体积的要素的外表面或壳。多面体由平面 3D 环和三角形构成,将组合使用这两种形状以建立三维壳模型。可使用多面体来表示从简单对象(如,球体和立方体)到复杂对象(如,等值面和建筑物)的任何事物。
几何属性
创建新要素类时,可选择允许三维数据的坐标包含测量 (m) 值或 z 值。
是否需要 m 值或 z 值由要使用的数据类型决定。
通过在数据中包含 m 值,可允许在点坐标的顶点处存储属性值。如果是线性参照,m 值会将测量值存储在沿线性要素分布的顶点中。这将允许沿线找到位置。如果要对数据使用线性参照或动态分段应用,坐标需要包含 m 值。
Z 值用于表示指定表面位置的高程或其他属性。在高程或地形模型中,z 值表示高程;在其他类型的表面模型中,它表示特殊属性(如年降雨量、人口和其他表面测量值)的密度或数量。如果要构建高程模型、创建地形或处理任意三维表面,坐标需要包含 z 值。
坐标系
创建新要素类时,需要选择(也可能需要创建)坐标系。坐标系与容差和分辨率值一起组成要素类的空间参考。空间参考描述了要素实际所处的位置。
可通过多种方式为新要素类定义坐标系:
- 选择 ArcCatalog 随附的其中一个预定义坐标系。导航至相应表示数据模型中区域的地理坐标系或投影坐标系。
- 导入由另一要素类使用的坐标系参数。如果想要使用另一个要素类的坐标系作为模板,可选择浏览到该坐标系并将其导入。
- 定义新的自定义坐标系。可输入值来创建符合您要求的坐标系。
如果选择让坐标包含 z 值,还需要指定垂直坐标系。垂直坐标系用于地理参考 z 值,最常用于表示高程。垂直坐标系包含大地基准或高程基准、测量的线性单位、轴方向和垂直位移。
M(测量)值不具有坐标系。
如果数据没有坐标系信息或您不知道要使用哪个坐标系,可选择未知坐标系。
“修改”选项用于查看或编辑坐标系的属性。
了解有关地图投影和坐标系的详细信息。
容差
空间参考也包含容差值。X,y;z 和 m 坐标都具有反映坐标数据精度的相关容差值。容差值为坐标之间的最小距离。如果一个坐标在另一个坐标的容差值范围内,则会将二者视为同一位置。当需要确定两个点是足够近,可以给定相同坐标值,还是这两个点足够远,各自具有其自己的坐标值时,即会在关系运算和拓扑运算中使用此值。
默认容差设定值为 0.001 米,或者为其等效值(以地图单位表示)。这是默认分辨率值的 10 倍,大多数情况下推荐使用此设置。允许的最小容差值是分辨率值的两倍。如果容差值设置得较高,则会获得较低的坐标数据精度,相反,如果容差值设置得较低,则会获得较高的坐标数据精度。
对于关系运算和拓扑运算,不同的容差值可能会产生不同的答案。例如,如果使用最小容差,两个几何可能属于不相交几何(没有共有的点),如果使用较大的容差,则它们可能会属于接触几何。
分辨率和域范围
要素类或要素数据集的所有坐标均根据所选坐标系进行地理参考,然后被捕捉到格网。此格网由分辨率定义,分辨率用来确定坐标值的精度(例如,有效数字位数)。分辨率确定了格网网格的细度,格网网络覆盖了要素类或要素数据集范围。所有坐标均捕捉到此格网,而分辨率定义了格网的各条线之间的距离。
分辨率值的单位与相关坐标系的单位相同。例如,如果空间参考所使用的投影坐标系的单位是米,则也会以米为单位来定义分辨率值。所用的分辨率值应至少比容差值小 10 倍。
默认(和建议使用的)分辨率值是 0.0001 米 (1/10 mm),或者为其等效值(以地图单位表示)。
例如,如果要素类以美国国家平面英尺为单位进行存储,则默认精度为 0.0003281 英尺(0.003937 英寸)。如果坐标以经纬度表示,则默认分辨率为 0.000000001 度。
对于未知坐标系或 m 值,需将分辨率设为数据类型所对应的值,而不必明确设置测量单位。
配置关键字
数据库存储配置可用于调整数据在文件地理数据库或 ArcSDE 地理数据库中的存储方式。配置参数将被组合为一个或多个配置关键字,其中一个关键字为 DEFAULTS 配置关键字,用于指定默认存储参数。
个人地理数据库不支持选择配置关键字。通过 SQL Server Express 获得许可证的 ArcSDE 地理数据库仅支持默认存储参数(DEFAULTS 配置关键字)。
在文件地理数据库或 ArcSDE 地理数据库中创建要素类时,可以为数据库指定要使用的配置关键字。大多数情况下,应使用 Default 关键字。但是在某些情况下,在创建特定数据集或数据类型时可能要指定其他配置关键字,以将其性能最大化或对其在数据库中的存储方式的某一方面进行改善。
下面是配置关键字的一些示例及其应用:
- DEFAULT - 对于大多数地理数据库应用,会使用合理的默认配置和存储设置。
- MAX_FILE_SIZE_256TB - 如果将一个特别大的图像导入文件地理数据库,可指定 MAX_FILE_SIZE_256TB 配置关键字,从而允许地理数据库中栅格数据集的大小最大可达 256 TB。
- SDO_GEOMETRY - 如果要向 ArcSDE for Oracle 地理数据库添加栅格数据集,可指定 SDO_GEOMETRY 配置关键字,从而要求数据库以 Oracle GeoRaster 格式存储栅格数据。
- TEXT_UTF16 - 如果将包含中文字符的要素类复制到文件地理数据库,可指定 TEXT_UTF16 配置关键字,这样属性列中的文本字符将以 UTF-16 格式进行存储,这会使中文字符的存储效率更高。
字段和字段属性
在 ArcCatalog 或 Catalog 窗口中创建新要素类时,可指定所要包含的任意数量的字段。还可以指定字段属性,如字段类型和可存储在字段中的最大数据量。每个字段类型都有特殊的属性。
所有字段均具有如下属性:
- 别名 - 要素类字段的备用名称。
与字段的真实名称不同,别名不需要遵守数据库的限制,因此可包含空格和特殊字符,并允许以数字开头。
- 允许空值 - 这会在创建字段时控制该字段是否具有“非空”约束。如果“允许空值”设为“否”,数据库中的字段定义将包含“非空”约束。另一方面,如果保持默认设置“是”,则字段可以为空。注:
地理数据库模型当且仅当字段具有“非空”约束时,才会插入一个空值(数字 = 0,文本 = ""),而不是数据库“为空”。将字段添加到要素类或表中后,将无法更改字段的“允许空值”属性。无法为要添加到要素类或表(已进行了填充)中的字段指定“允许空值 = 否”。
- 默认值 - 当使用 ArcMap 编辑工具创建新要素或对象时,可输入用来自动填充该要素或对象的默认值。
- 长度 - 文本字段属性,用来确定可输入的最大字符数。
所有要素类都具有一组必填字段,记录要素类中任意特定对象状态时需要使用这些字段。创建新要素类时会自动创建这些必填字段,且无法删除。必填字段也可能具有一些必需的属性,例如,它们的域属性。无法修改必填字段的必需属性。
例如,在多边形要素类中,OBJECTID 和 Shape 即为必填字段。它们确实具有一些可修改的属性(例如,它们的别名和几何类型),但不能删除这些字段。
创建新要素类时,可选择从另一个要素类或表中导入字段。该选项允许使用另一个要素类或表作为模板,用于为要创建的要素类或表定义字段。导入字段后,可编辑字段名称、其数据类型以及其属性。
如果在创建新要素类时导入字段,不会影响必填字段。例如,如果已将新要素类的几何类型属性设为“点”,当从某个要素类(其中 SHAPE 字段的几何类型属性是“多边形”)导入字段定义时,不会覆盖“点”属性。
对于某些字段名称,在 ArcGIS 中会显示其存储在 ArcSDE 地理数据库中的要素类的全限定名称。例如,如果创建或导入包含名为 Area 的字段的多边形要素类,会在该名称后追加数据库、架构和要素类名称。该名称将会出现在要素类的属性表中。也就是说,对于 museum 数据库的 prof 架构中所存储的名为 archsites 的多边形要素类,Area 字段如下所示:
MUSEUM.PROF.ARCHSITES.AREA
以下列表包含将在 ArcSDE 地理数据库中完全限定的所有字段名称。
FID、AREA、LEN、POINTS、NUMOFPTS、ENTITY、EMINX、EMINY、EMAXX、EMAXY、EMINZ、EMAXZ、MIN_MEASURE、MAX_MEASURE
对于这种情况,可能要考虑使用不同的字段名称或字段别名。