TairGis是一种使用R-Tree做索引,支持地理信息系统GIS(Geographic Information System)相关接口的数据结构。Redis的原生GEO命令是使用GeoHash和Redis Sorted Set结构完成的,主要用于点的查询,TairGIS在此基础上还支持线、面的查询,功能更加强大。
主要特性
- 使用R-Tree作为索引存储。
- 支持线、面的相关查询(含相交查询)。
- 通过GIS.SEARCH可实现原生Redis
GEORADIUS
命令的功能。
最佳实践
基于TairGIS轻松实现用户轨迹监测和电子围栏前提条件
注意事项
操作对象为Tair实例中的TairGIS数据。
命令列表
命令 | 语法 | 说明 |
---|---|---|
GIS.ADD | GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...] |
在area中添加指定名称的多边形(可添加多个),使用WKT(Well-known text)描述。
说明 WKT是一种文本标记语言,用于描述矢量几何对象、空间参照系统及空间参照系统之间的转换。
|
GIS.GET | GIS.GET area polygonName |
获取目标area中指定多边形的WKT信息。 |
GIS.GETALL | GIS.GETALL area [WITHOUTWKT] |
获取目标area中所有多边形的名称和WKT信息。如果设置了WITHOUTWKT选项,仅返回多边形的名称。 |
GIS.CONTAINS | GIS.CONTAINS area polygonWkt [WITHOUTWKT] |
判断指定的点、线或面是否包含在目标area的多边形中,若包含,则返回目标area中命中的多边形数量与多边形信息。 |
GIS.WITHIN | GIS.WITHIN area polygonWkt [WITHOUTWKT] |
判断目标area是否包含在指定的点、线或面中,若包含,则返回目标area中命中的多边形数量与多边形信息。 |
GIS.INTERSECTS | GIS.INTERSECTS area polygonWkt |
判断指定的点、线或面与目标area的多边形是否相交,若相交,则返回目标area中与其相交的多边形数量与多边形信息。 |
GIS.SEARCH | GIS.SEARCH area [RADIUS longitude latitude distance M|KM|FT|MI] [MEMBER field distance M|KM|FT|MI] [GEOM geom] [COUNT count] [ASC|DESC] [WITHDIST] [WITHOUTWKT] |
在指定经、纬度及半径距离范围内,查找目标area中的点。 |
GIS.DEL | GIS.DEL area polygonName |
删除目标area中指定的多边形。 |
DEL | DEL key [key ...] |
原生Redis命令,可以删除一条或多条TairGIS数据。 |
大写关键字
:命令关键字。斜体
:变量。[options]
:可选参数,不在括号中的参数为必选。A|B
:该组参数互斥,请进行二选一或多选一。...
:前面的内容可重复。
GIS.ADD
类别 | 说明 |
---|---|
语法 | GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...] |
时间复杂度 | O(log n) |
命令描述 |
在area中添加指定名称的多边形(可添加多个),使用WKT(Well-known text)描述。
说明 WKT是一种文本标记语言,用于描述矢量几何对象、空间参照系统及空间参照系统之间的转换。
|
选项 |
|
返回值 |
|
示例 | 命令示例:
返回示例:
|
GIS.GET
类别 | 说明 |
---|---|
语法 | GIS.GET area polygonName |
时间复杂度 | O(1) |
命令描述 | 获取目标area中指定多边形的WKT信息。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.GETALL
类别 | 说明 |
---|---|
语法 | GIS.GETALL area [WITHOUTWKT] |
时间复杂度 | O(n) |
命令描述 | 获取目标area中所有多边形的名称和WKT信息。如果设置了WITHOUTWKT选项,仅返回多边形的名称。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.CONTAINS
类别 | 说明 |
---|---|
语法 | GIS.CONTAINS area polygonWkt [WITHOUTWKT] |
时间复杂度 |
|
命令描述 | 判断指定的点、线或面是否包含在目标area的多边形中,若包含,则返回目标area中命中的多边形数量与多边形信息。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.WITHIN
类别 | 说明 |
---|---|
语法 | GIS.WITHIN area polygonWkt [WITHOUTWKT] |
时间复杂度 |
|
命令描述 | 判断目标area是否包含在指定的点、线或面中,若包含,则返回目标area中命中的多边形数量与多边形信息。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.INTERSECTS
类别 | 说明 |
---|---|
语法 | GIS.INTERSECTS area polygonWkt |
时间复杂度 |
|
命令描述 | 判断指定的点、线或面与目标area的多边形是否相交,若相交,则返回目标area中与其相交的多边形数量与多边形信息。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.SEARCH
类别 | 说明 |
---|---|
语法 |
|
时间复杂度 |
|
命令描述 | 在指定经、纬度及半径距离范围内,查找目标area中的点。 |
选项 |
说明 只能同时使用
RADIUS、
MEMBER和
GEOM中的一种方式。
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|
GIS.DEL
类别 | 说明 |
---|---|
语法 | GIS.DEL area polygonName |
时间复杂度 | O(log n) |
命令描述 | 删除目标area中指定的多边形。 |
选项 |
|
返回值 |
|
示例 | 提前执行 命令示例:
返回示例:
|