在 Oracle 中存储的地理数据库 (geodatabase) 内的定位器
定位器是包含用于进行地理编码的参考数据快照的数据集。所含有的信息包括:如何使地址标准化、搜索地址匹配项的方法以及发现匹配项时返回的信息类型。要了解有关如何创建和使用定位器的详细信息,请参阅定义地址定位器组件及相关主题。
ArcGIS Desktop 中的定位器
如果已在地理数据库中创建过地址定位器,那么它便会在目录树中显示为下方图标:
Oracle 中地理数据库内地址定位器的名称将包含定位器所有者的名称和定位器本身的名称。
例如,用户 perrita 所拥有的定位器 city_streets 在目录树中将以 perrita.city_streets 形式列出。
Oracle 数据库中的定位器
创建定位器的同时,系统会在地理数据库中创建相应的定位器数据集表。定位器数据集表中将包含定位器参考数据的快照,它包括地理编码所需的全部属性和 shape 信息,这些信息以便于快速搜索和检索的格式存储。
定位器创建后,不会使用原始参考数据而是参考定位器数据集表。
定位器数据集表的名称与定位器名称相同,只是加了 _lox 后缀。如果定位器名称中包含空格,则在定位器数据集表名称中应以下划线代替空格。
定位器数据集表的作用是,将一系列二进制数据块(与文件类似)保留在数据库中。
您不应该修改定位器数据集表中的内容。
<locator_name>_lox
创建定位器时,ArcSDE 将从参考要素类中读取与地理编码相关的属性,然后以一种高效的专有二进制结构组织数据,最后在定位器数据集表中存储参考数据的快照。这样,定位器创建后,便无需使用原始参考数据,而只需参考定位器数据集表。按照 EmbedGeocodingRules 定位器属性所指明的那样,定位器也可以将地理编码规则文件的副本存储在地理编码索引表中。
定位器数据集表的作用是,将一系列二进制数据块(与文件类似)保留在数据库中。
字段名 |
字段类型 |
描述 |
是否允许空值 |
---|---|---|---|
FILEID |
NUMBER(9) |
内部地理编码索引数据块的标识符 |
非空 |
SEGID |
NUMBER(9) |
内部地理编码索引数据块子部分(段)的标识符 |
非空 |
DATA |
BLOB |
内部地理编码索引数据块子部分(段)的二进制数据 |
非空 |
下方示意图显示了定位器所涉及到的数据库管理系统 (DBMS) 中的表。在本例中,CITY_STREETS_LOX 表即为定位器数据集。
- 业务表
- STREETS 是定位器所依据的要素类的业务表名称。创建或重新构建定位器时才会用到业务表。搜索地址时,定位器仅使用定位器数据集表中的数据。如果要对业务表进行更改,并希望定位器反映出这些更改,则必须使用 ArcCatalog 重新构建定位器。
- sde_locators 表
- 将定位器添加到 ArcSDE 数据库中时,ArcSDE 会在 sde_locators 表中添加一行。定位器表中的每一行均用于定义定位器或定位器样式。
- METADATA 表
- 将定位器添加到 ArcSDE 数据库中时,ArcSDE 会在 METADATA 表中为定位器的每个属性都添加一行。METADATA 表中的每一行定义定位器的一个属性。col_locator 列是 ArcSDE 用来关联定位器与其属性的 sde_locators 表中名称列的外键。
XML 文档中的定位器
目前,XML 文档不支持定位器。因此,如果您的地理数据库中已存在定位器,并且您将地理数据库导出为 XML 工作空间文档,然后将 XML 工作空间文档导入另一个数据库,则必须重新创建定位器。