本文介绍在开发过程中涉及到的一些概念。
Lindorm Ganos中所称的时空几何,其范畴包含以下几方面:
时空几何对象
矢量数据,如点、线、面状要素
在矢量数据基础上结合时间属性,组成的时空数据(或时空轨迹数据)
针对时空几何对象的相关操作,如时空关系判断
时空索引
Lindorm Ganos能够提供优异的查询性能,其背后的机制在于为时空数据建立了高效的时空索引。在Lindorm Ganos中,时空索引以HBase的Rowkey形式存在,请参见创建索引表。
时空关系
所谓的时空关系是指两个时空几何对象之间的时间&空间的相对位置。典型的时空关系包括:相交、相离、覆盖、包含等。 在现实场景中,常说的「地理围栏判断」是指一个面状要素表示的地理围栏与目标对象(点、线、面)之间的关系。如果目标对象在地理围栏之内,则称之为包含;在面状要素之外,则称之为相离。 Lindorm Ganos借助CQL工具来描述时空关系,请参见查询时空对象。
OGC
OGC全称是开放地理空间信息联盟(Open Geospatial Consortium),是一个非盈利的国际标准组织,它制定了数据模型和相关操作的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作。
GeoTools
Lindorm Ganos的SDK是基于GeoTools实现的。GeoTools是一个遵循OGC标准,用于处理地理空间数据的工具包,实现了OGC标准的数据模型和接口,很多地理工具都基于GeoTools开发,详情参考:https://geotools.org/。
Geometry
在OGC的定义中,Geometry用来表示一个空间对象,例如空间点对象、空间线对象、空间面对象。Geometry只包含空间对象的位置信息,并不包含其附带的属性信息。 GeoTools提供了工具来帮助构建Geometry,因此在Lindorm Ganos开发过程中,可以较为方便的使用。
SimpleFeature
简单要素。 通俗来讲,SimpleFeature包含Geometry以及其他属性信息。通常所说的一个轨迹点就是一个SimpleFeature,包含了该轨迹点的空间位置、时间信息以及其他属性信息,其中时间信息也是作为属性信息的一部分。
CQL&ECQL
CQL全称为Common Query Language,是OGC为方便地理服务的查询而定义的查询语言。ECQL全称Extended Common Query Language,是CQL的扩展版,比CQL更强大。 一般来说,ECQL更多的是定义filter,类似于SQL语言的where子句,通过文本描述的方式来筛选出目标对象。参考「查询时空对象」一章。 在本手册中,为了简单起见,所说的CQL就是ECQL。
WKT
WKT全称Well-known text,是OGC定义的一种用文本来描述空间对象的格式。例如点就可以写成POINT(0,0),这在查询语句中经常使用,也容易理解,CQL&ECQL中也是用WKT来表示空间对象的。WKT的详细规范可参考:http://www.opengeospatial.org/standards/wkt-c
WKB
WKB全称Well-known Binary,是OGC定义的一种通过序列化字节来描述几何对象的格式。与WKT相比,其优点在于数据较小,适宜传输。GeoTools提供了工具可用于WKB与WKT之间的转换。