Contents

空间数据库

空间数据库是一种通用数据库(通常是关系数据库),它已得到增强,包括表示几何空间中定义的对象的空间数据,以及用于查询和分析此类数据的工具。大多数空间数据库允许表示简单的几何对象,例如点、线和多边形。某些空间数据库可处理更复杂的结构,例如 3D 对象、拓扑覆盖、线性网络和不规则三角网 (TIN)。虽然典型的数据库已经开发用于管理各种数字和字符类型的数据,但此类数据库需要额外的功能来有效地处理空间数据类型,并且开发人员经常添加几何或要素数据类型。开放地理空间联盟(OGC)开发了简单功能规范(首次发布于1997年),并为向数据库系统添加空间功能设定了标准。SQL/MM 空间 ISO/IEC 标准是 SQL/MM 多媒体标准的一部分,它使用支持循环插值的数据类型扩展了简单特征标准。

除了典型的 SQL 查询(如 SELECT 语句)之外,空间数据库还可以执行各种空间操作。以下操作以及更多操作由开放地理空间联盟标准指定:

空间测量:计算线长度、多边形面积、几何之间的距离等。 空间函数:修改现有要素以创建新要素,例如,在现有要素周围提供缓冲区、相交要素等。 空间谓词:允许对几何之间的空间关系进行真/假查询。示例包括“两个多边形是否重叠”或“在我们计划建造垃圾填埋场的区域一英里范围内是否有住宅?(见DE-9IM) 几何构造函数:创建新几何图形,通常通过指定定义形状的顶点(点或节点)。 观察者函数:返回有关要素的特定信息的查询,例如圆心的位置。

空间索引

常见的空间索引方法包括:

  • Binary space partitioning (BSP-Tree): Subdividing space by hyperplanes.
  • Bounding volume hierarchy (BVH)
  • Geohash
  • Grid (spatial index)
  • HHCode
  • Hilbert R-tree
  • kd-tree
  • m-tree – an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.
  • Octree
  • PH-tree
  • Quadtree
  • R-tree: Typically the preferred method for indexing spatial data.[4] Objects (shapes, lines and points) are grouped using the minimum bounding rectangle (MBR). Objects are added to an MBR within the index that will lead to the smallest increase in its size.
  • R+ tree
  • R* tree
  • UB-tree
  • X-tree
  • Z-order (curve)

空间查询

pg为例

  • Distance(geometry, geometry) : number

  • Equals(geometry, geometry) : boolean

  • Disjoint(geometry, geometry) : boolean

  • Intersects(geometry, geometry) : boolean

  • Touches(geometry, geometry) : boolean

  • Crosses(geometry, geometry) : boolean

  • Overlaps(geometry, geometry) : boolean

  • Contains(geometry, geometry) : boolean

  • Length(geometry) : number

  • Area(geometry) : number

  • Centroid(geometry) : geometry

  • wiki