摘 要:PostGIS是开源关系数据库系统 PostgreSQL 基于地理信息系统的扩展插件。文章分析对比了Oracle,MySQL与 PostgreSQL3 种空间数据库对地理信息系统的支持,并深入研究了 PostgreSQL搭载 PostGIS 模型的架构与原理,最后基于研究结果,提出了一种基于 PostGIS 获取人员相关地理活动信息的方案,并对其进行了实现。
关键词:PostGIS;PostgreSQl;地理信息系统
中图法分类号:TP311文献标识码:A
1 引言
随着地理信息系统的发展,各行各业基于地理信息系统的业务逐渐增多,与此同时,数据库不断发展,已成为地理信息系统的重要组成部分。如何建立空间数据库,以及如何实现业务与地理信息系统的交互,成为重要的研究课题。
2 空间数据库模型
地理信息系统( Geographic Information System,GIS)的发展过程主要经历了3 个阶段[1] ,具体如下。一代地理信息系统:在最初的地理信息系统中,
空间数据是存储在平面文件中的,并且这些数据是需要专门的软件来解析和处理的。
二代地理信息系统:其核心是能够剥离空间数据与非空间数据,系统将非空间数据存储于关系数据库中(Relational DataBase Management System,RDBMS),但空间数据与一代相同,仍存储于平面文件中。
三代地理信息系统:其将空间数据与非空间数据同时存储于空间数据库中,使数据完全集成在一起。GIS 工具能够通过sql 语句直接访问地理数据库。
根据三代GIS 发展历程可见,GIS 对数据库的要求也在逐步提高,从关系型数据库发展到空间数据库,而空间数据库与其他数据库不同的是能够处理相关的地理空间数据。所谓地理空间数据,指的是能够通过符号化来表示空间现象与记录事务。
空间数据库是对象的地理空间数据存储与管理的媒介,已成为GIS 的核心支撑,因此拥有一个良好的数据库是GIS 成功与否的关键。
空间数据库的主要代表有Oracle 的Oraclespatial,MySQL 以及PostgreSQL 的PostGIS3 种,这3 种都能满足一般的空间数据库需求,各自具有不同的优势与缺陷[2] 。
3 PostgreSQL 与PostGIS 模型
3.1 模型简介
PostgreSQL 的前身是伯克利1977 年的Ingres 项目,经过不断发展与完善,使其成为一个可灵活扩展的数据库服务器[3] 。PostgreSQL 包含类继承机制,具有面向对象的特性,还支持丰富的数据类型,可跨平台开发,是目前支持平台最多的数据库管理系统。
仅依靠PostgreSQL 自有的功能无法满足空间数据库的要求,主要体现在其缺乏复杂的空间类型,没有提供空间分析、投影变换等功能。为达到空间数据库的使用标准,PostGIS 应运而生。
PostGIS 是PostgreSQL 的一个扩展,PostGIS 提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。同时PostGIS 遵循OpenGIS 的規范。
其存储机制为:将地理空间数据中的非空间数据存储到表格的普通列中,再将地理空间数据中的空间数据通过PostGIS 支持的Geometry 对象列加入到表格中,实现非空间数据与空间数据的统一存储。