01
空间数据库介绍
什么是空间数据库(Spatial DBMS):
Spatial DBMS是一种能够高效存储、操作和查询空间数据的数据库管理系统。
空间数据表示几何空间中的对象,例如点和多边形。
虽然任何DBMS都可以存储简单的空间数据,例如以(x,y)坐标的形式,但我们对spatial DBMS的期望更高。
spatial DBMS通常提供专用数据类型来存储更复杂类型的空间数据。
此外,还实现了空间索引,以优化对空间数据集的访问。
例如,空间索引允许有效地检索与其他对象相距一定距离内的点。
此外,空间DBMS提供了对对象执行操作或操纵对象的功能。
示例包括计算复杂空间对象之间的距离、合并或相交对象以及计算对象的属性,如多边形的面积。
02
空间数据库有哪些
01
国外较流行的空间数据库
(1)PostGIS:是PostgreSQL的空间扩展;
(2)SpatiaLite:是SQLite的空间扩展。
除此以外,还有 Aerospike、GeoMesa、CrateDB等。
02
国内空间数据库
(1)BeyonDB
博阳数据库管理系统(BeyonDB)是国内一款内置时空多媒体信息处理引擎的、具有自主知识产权、企业级、跨平台、分布式、高安全的数据库管理系统平台软件。
(2)Yukon
超图禹贡开源空间数据库 Yukon 基于openGauss数据库扩展地理空间数据的存储和管理能力,提供专业的GIS(Geographic Information System)功能,赋能传统关系型数据库。
(3)Spacture
Transwarp Spacture是星环科技自主研发的时空数据库。支持大规模矢量数据、时空轨迹数据的存储与计算,具有完备的数据查询、分析和挖掘能力,可用于时空查询分析、时空模式挖掘、时空轨迹聚类等时空轨迹数据分析场景,广泛应用于疫情防控、交通物流、城市管理、位置服务等场景。
03
空间数据库流行度排名
2025年6月份,国外空间数据库流行度排名:
2025年6月份,国产空间数据库流行度排名:
图片来源于墨天轮
04
空间数据库使用场景介绍
空间数据库是专为处理地理空间数据优化的数据库系统,其核心价值在于解决传统关系型数据库无法高效支持的空间数据操作需求。
空间数据类型支持存储点(Point)、线(LineString)、面(Polygon)、栅格(Raster)、三维模型(3D Geometry)等地理实体,保留几何属性和拓扑关系。
而关系型数据库需要将空间数据拆解为数值(如经纬度)或二进制大对象(BLOB),丢失空间语义,性能较差。
例如有需求:查找距离某点5公里内的所有学校。
空间数据库PostGIS可以用类似如下一条简单的SQL语句实现:
SELECT name FROM schools
WHERE ST_Distance(location, ST_Point(116.4, 39.9)) <5000;
参数说明:
ST_Distance:
float ST_Distance(geometry g1, geometry g2);
float ST_Distance(geography geog1, geography geog2, boolean use_spheroid = true);
对于geometry,返回两个几何之间的最小 2D 笛卡尔(平面)距离,以投影单位(空间参考单位)表示。
对于geography,默认返回两个地理位置之间的最小测地距离(以米为单位),在由 SRID 确定的椭球体上进行计算。 如果 use_spheroid 为 false,则使用更快的球面计算。
ST_Point:
返回具有给定 X和Y 坐标值的 Point。对于大地坐标,X是经度, Y是纬度。
而关系型数据库由于无法存储复杂几何体(如多边形),拓扑关系丢失,无法原生支持地理围栏、路径规划等高级操作,需要更复杂、繁琐的操作才能实现这个需求。
参考文献
DB-Engines Ranking of Spatial DBMS
文章作者丨陈举超
原文始发于微信公众号(EBCloud):什么是空间数据库?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论