基于PostGIS 获取人员地理活动信息的设计与实现

2023-08-09 15:26李志翔
计算机应用文摘 2023年15期
关键词:空间数据数据库区域

摘 要: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 对象列加入到表格中,实现非空间数据与空间数据的统一存储。

3.2 PostGIS 空间数据模型

PostGIS 遵循了OpenGIS 规范中的简单要素SQL模型(SFS:Simple Feature for SQL Model),其涵盖所有需要支持的数据类型,主要分为3 种数据类型模型:矢量数据、栅格数据和拓扑数据。

3.3 性能对比

为了横向比较PostgreSQL 在空间数据库的性能,针对查询空间位置数据库表的查询时间,本文对PostgreSQL 及MySQL 进行了比较验证,其中,使用的系统环境为Windows 10 专业版64 位操作系统,Intel(R) Core(TM) i5?10400 CPU @ 2.90 GHz 2.90GHz,内存为16.0 GB。

本文随机创建了1 万、5 万、10 万、20 万、50 万、100 万与200 万空间点数据表,分别存于PostgreSQL与MySQL 数据库中, 然后通过查询语句,分别查询最大范围、中等范围与小范围区域中存在的空间点数量,并对比两种数据库的查询时间,因每次查询时间略微不同,每次查询10 次,取平均值记录。将结果整理为对比图,结果如图1 所示。

图1 中,选择了范围最大与范围最小的查询结果进行比较。在点数较少时,两者的性能差异不明显,但当点数较大时,PostgreSQL 的查询速度较MYSQL更快,且数量越大,优势越大。

鉴于PostgreSQL 的标准化与对地理信息系统更全面的支持,本文将PostgreSQL 作为数据库,基于PostGIS 插件及围绕如何获取人员地理活动信息来进行设计,并且对响应的设计进行了实现。

4 获取人员地理活动信息设计

4.1 背景

随着信息化时代的不断发展,获取位置数据的途径变得多种多样,包括但不局限于手机、网络、全球定位系统( Global Position System, GPS)、射频识别(Radio Frequency Identification,RFID)、雷达设备、电子战设备。定位技术发展迅速,通过这些定位设备,就能够获取到对象的轨迹信息,并将这些信息在许多领域进行研究分析,例如,电子战领域,通过电子战设备,可以获取敌方设备在时间段内的点迹并能够生成轨迹信息,同时预测敌方设备后续位置;通信领域,通过通信设备,能够识别信号发射方的位置信息;GPS领域,显示公交车实时位置的软件能够不断更新公交车的位置状态信息。

由于获取位置信息的方式越来越多,越来越方便,位置信息的数据量也逐渐庞大,趋于复杂化。

4.2 流程

本文拟在已经存在人员位置信息的前提下,通过PostgreSQL 搭载PostGIS 插件,实现对人员的活动信息进行统一存储与管理。通过可视化工具,进行进一步的可视化显示,以查看与分析人员的地理活动信息。通过筛选位置信息与时间信息,构建出完整的时空轨迹,从而得出用户所经过的位置,分析出意图目的地以及经常活动的位置范围等重要信息,这些信息可以应用于办案人员的办案分析、溯源分析等。

本文通过使用PostgreSQL 来存储地理信息相关数据。因其良好的性能与对GIS 的全面支持,以及灵活的可扩展性,将其作为地理数据库,界面则使用QGIS,通过编译源码对其进行二次开发,一来继承了QGIS 对PostGIS的友好性,方便连接PostGIS 并做可视化显示,二来能够进行个性化定制操作,以满足特定的需求。

4.3 设计

人员相关地理活动信息可以从以下4 方面来设计:WIFI、基站地理信息设计、照片拍摄地理信息设计与软件地理信息设计。

本文模拟了一个月的位置信息,简化了数据量,以每天位置信息为10 个点来进行模拟,具体的行程为:9.1~ 9.20 在厦门市活动,9.21 前往福州,9.22 ~9.25 在北京市活动,9.26~9.30 在西安市活动。

通过Postgis 将点迹信息存储在postgreSQL 中,然后通过QGIS 连接数据库进行效果的展现,实际上,可以将QGIS 以二次开发形式集成到软件中并进行具体操作,在用QGIS 连接PostgreSQL 的表后,可以将表内的数据展现在地图上。

位置信息分布在厦门、福州、北京和西安,由于地图范围过大,点击并进行聚类显示。

对于Wi?Fi、基站位置的信息分析,本文主要从以下几个方面来进行展现。

(1)获取时间段内轨迹信息。

当需要对人员的某个时间段内的行程进行分析时,可以直接获取某个时间段的位置信息,本文获取了9.22~9.25 的位置信息。具体如图2 所示。

上图是9.22~9.25 的位置信息匯总,通过数据库查询可以迅速获取人员特定时间段的活动范围,对调查有一定的作用,但时间段范围较大,并不精确。

(2)获取单日行程轨迹。

同样地,当需要获取人员单日的行程轨迹时,能够通过某些操作,得到更进一步的调查分析结果。本文获取了9.5,9.21,9.23 以及9.30 人员位置信息。由于数据进行了精简,点迹数量比较少,实际的数据量会远远大于模拟的数据量,但通过获取单日的位置信息,可以得到人员在当天的活动轨迹信息。

(3)获取关键场所到访频次。

在某些特定的场景中,已知某个区域属于重点区域,若要知道人员是否去过该重点场所,或者要知道人员经过重点区域的次数,这些要求也能够得到满足。步骤有以下2 步。

①人员预设关键场所(导入,绘制)。重点区域信息,需要相关人员预先设置,可以通过在地图上手绘形成,也可以通过数据信息导入到数据库中,PostgreSQL 建立一张表,该表专门来存储该区域信息。比如,以厦门软件园为重点区域,粗略绘制该区域。

当重点区域绘制完成后,用户便能够对人员的点迹进行筛选,获取到重点区域的访问情况,也能够直观地查看人员是否与重点区域有关联。

②SQL 获取重点区域范围内点迹。

现采用QGIS 进行展现,后期将QGIS 集成到相应的软件,原理相同,QGIS 连接到PostgreSQL 的tbl_station_info 表,执行SQL,可以查询到重点区域范围内的点。

执行完成后,点击加载图层,图层可以加载到QGIS 上,选择终端区域图层与查询结构图层(“软件园”)。

通过此功能可以获取重点区域的重点信息,有助于相关人员进一步分析人员与案件的关系,同时也有进一步拓展的可能。

5 结束语

随着信息与各行各业的飞速发展,地理信息数据库将成为地理信息系统发展的关键环节。本文从地理数据库展开,对比了Oracle spatial,Mysql GIS 与PostgreSQL PostGIS3 种地理数据库模型,然后详细介绍了PostgreSQL 搭载PostGIS 插件的地理数据库模型的原理与实现方式,探讨了PostGIS 对地理信息系统的支撑性,最后基于PostgreSQL 数据库,搭载PostGIS插件,提出了一种获取人员相关地理活动信息的设计思路,并对其进行了相应的实现。

参考文献:

[1] 盛凯,刘忠,周德超.基于PostGIS 的历史航迹重演分析系统设计与开发[J].海军工程大学学报,2017,29(5):108?112.

[2] 赵莹,胡畅达,王国宇.三种关系型空间数据库比较[J].科技创新与应用,2021,11(19):62?64.

[3] 蔡佳作,欧尔格力.基于PostgreSQL 的地理空间数据存储管理方法研究[J].青海师范大学学报(自然科学版),2016,32(2):21?23+27.

作者简介:

李志翔(1994—),本科,研究方向:电子数据取证。

猜你喜欢
空间数据数据库区域
数据库
数据库
元数据驱动的多中心空间数据同步方法研究
分区域
数据库
数据库
基于严重区域的多PCC点暂降频次估计
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略
多源空间数据同名实体几何匹配方法研究