用户指南和参考

表示地形的数据

本节提供数据的概述,您将生成、存储和操纵这些数据来获取 Spatial 信息。 包括如下主题:

数据如何表示地形

在 DB2 Spatial Extender 中,可用表或视图中的一行或某一行的一部分来表示地形。 例如,考虑DB2 Spatial Extender 的用途中提及的两个地形:办公楼和住宅。 在图 1中,BRANCHES 表的每行表示银行的一个分支机构。 作为变化,图 1中 CUSTOMERS 表的每行作为一个整体表示该银行的客户。 然而,每行的部分 -- 特别是包含客户地址的单元 -- 可看作表示该客户的住宅。

图 1. 表示地形的表行;其地址数据表示地形的表行. BRANCHES 表中的数据行表示银行的一个分支机构。 CUSTOMERS 表中的地址数据单元表示客户的住宅。 两个表中的名称和地址都是虚构的。


顶部

图 1中的表包含标识和描述该银行的分支机构和客户的数据。 这样的数据称作属性数据。

属性数据的子集--表示分支机构和客户地址的值--可转换为产生 Spatial 信息的值。 例如,如图 1中所示, 一个分支机构的地址为 92467 Airzone Blvd., San Jose CA 95141。 客户的地址为 9 Concourt Circle, San Jose CA 95141。 DB2 Spatial Extender 可将这些地址转换为指示该分支机构和客户的家所在位置的值, 这些值与这些位置周围的事物有关。 图 2显示 BRANCHES 和 CUSTOMERS 表,它们具有用来包含这样的值的新列。

图 2. 添加了 Spatial 列的表. 在每个表中,LOCATION 列将包含对应于地址的坐标。


顶部

当地址和类似的标识符用作 Spatial 信息的起始点时, 将它们称作源数据。

因为从它们派生的值产生 Spatial 信息, 所以将这些派生值称作 Spatial 数据。 下一节描述 Spatial 数据并介绍其相关的数据类型。

Spatial 数据的性质

许多 Spatial 数据由坐标组成。 坐标是表示相对于参考点的位置的数字。 例如,纬度是表示相对于赤道的位置的坐标。 经度是表示相对于格林尼治子午线的位置的坐标。 因此,黄石国家公园的位置由其纬度(北纬 44.45 度)和经度 (西经 110.40 度)定义。

纬度、经度、它们的参考点和其他相关参数总称为坐标系 也存在着不是基于纬度和经度的值的坐标系。 这些坐标系对位置、参考点和附加辨别参数有它们自己的度量单位。

最简单的 Spatial 数据项由定义单个地形的位置的两个坐标组成。 (数据项是占据关系表的单元的一个或多个值。) 更广泛的 Spatial 数据项由定义直线路径的几个坐标组成, 如道路或江河可能形成直线路径。 第三种 Spatial 数据项由定义区域的周边的坐标组成, 例如,陆地或洪泛区的边缘。 这些 Spatial 数据项和 DB2 Spatial Extender 支持的其他 Spatial 数据项在几何图形和相关的 Spatial 函数中有更详尽的描述。

每个 Spatial 数据项都是 Spatial 数据类型的一个实例。标记位置的两个坐标的数据类型为 ST_Point; 定义直线路径的坐标的数据类型为 ST_LineString; 定义周边的坐标的数据类型为 ST_Polygon。 这些类型和 Spatial 数据的其他数据类型都是属于单个层次的结构化类型。 有关层次的概述,参见关于 Spatial 数据类型

Spatial 数据的来源

可用下列方法获取 Spatial 数据:

使用属性数据作为源数据

DB2 Spatial Extender 可从地址等属性数据派生 Spatial 数据(如数据如何表示地形中所述)。 此过程称作地理编码。 要查看涉及的顺序,将图 2看作“之前”图片,并将图 3看作“之后”图片。 图 2显示 BRANCHES 表和 CUSTOMERS 表都具有指定用于 Spatial 数据的空列。 假设 DB2 Spatial Extender 对这些表中的地址进行地理编码以获取对应这些地址的坐标,并将这些坐标放入列中。 图 3举例说明了此结果。

图 3. 包括从源数据派生的 Spatial 数据的表. CUSTOMERS 表中的 LOCATION 列包含地理编码器从 ADDRESS、CITY、STATE 和 ZIP 列中的地址派生的坐标。 类似地,BRANCHES 表中的 LOCATION 列包含该地理编码器从此表的 ADDRESS、CITY、STATE 和 ZIP 列中的地址派生的坐标。此示例是虚构的;显示模拟的坐标,而非实际的坐标。


顶部

DB2 Spatial Extender 使用称作地理编码器的函数将属性数据转换为 Spatial 数据, 并将此 Spatial 数据放入表列中。有关地理编码器的更多信息,参见关于地理编码

使用其他 Spatial 数据作为源数据

不仅可从属性数据生成 Spatial 数据,也可从其他 Spatial 数据生成 Spatial 数据。 例如,假设在 BRANCHES 表中定义了其分支机构的银行想要知道有多少客户住在每个分支机构的五英里范围内。 在该银行可从数据库获取此信息之前, 它必须给数据库提供位于每个分支机构周围五英里半径内的区域的定义。 DB2 Spatial Extender 函数 ST_Buffer 可创建这样的定义。 ST_Buffer 使用每个分支机构的坐标作为输入, 可生成给希望的区域的周边定界的坐标。 图 4显示具有 ST_Buffer 提供的信息的 BRANCHES 表。

图 4. 包括从现存 Spatial 数据派生的新 Spatial 数据的表. SALES_AREA 列中的坐标是 ST_Buffer 函数从 LOCATION 列中的坐标派生的。 象 LOCATION 列中的坐标一样,SALES_AREA 列中的坐标也是模拟的;它们不是实际的。


顶部

除了 ST_Buffer 之外,DB2 Spatial Extender 还提供了其他几个从现存 Spatial 数据派生新 Spatial 数据的函数。有关 ST_Buffer 和这些其他函数的说明,参见从现存几何图形生成新几何图形的函数

调入 Spatial 数据

获取 Spatial 数据的第三种方法是从文件中调入它,这些文件的格式是 DB2 Spatial Extender 所支持的格式之一。 有关这些格式的说明,参见Spatial 数据的文件格式。 这些文件包含通常应用于地图的数据:人口普查、洪泛区、地震断层等。 通过将这样的数据与产生的 Spatial 数据组合使用,可增加可用的地理信息。 例如,若市政工程部门需要确定住宅区易遭受什么灾害,它可使用 ST_Buffer 在该社区周围定义一个区域。 然后市政工程部门可调入有关洪泛区和地震断层的数据, 以查看这些问题区域中的哪些区域与该区域重叠。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]