处理 S2 索引的函数
S2Index
S2 是一种地理索引系统,其中所有地理数据都在三维球体上表示(类似于地球仪)。
在 S2 库中,点被表示为 S2 索引 - 一个特定的数字,它内部编码了单位球表面上的一个点,与传统的 (纬度,经度) 对不同。要获取以 (纬度,经度) 格式指定的给定点的 S2 点索引,请使用 geoToS2 函数。同时,您可以使用 s2ToGeo 函数获取与指定 S2 点索引对应的地理坐标。
geoToS2
返回与提供的坐标 (经度, 纬度)
对应的 S2 点索引。
语法
参数
返回值
- S2 点索引。 UInt64。
示例
查询:
结果:
s2ToGeo
返回与提供的 S2 点索引对应的地理坐标 (经度, 纬度)
。
语法
参数
s2index
— S2 索引。 UInt64。
返回值
示例
查询:
结果:
s2GetNeighbors
返回与提供的 S2 对应的 S2 邻居索引。 S2 系统中的每个单元都是由四个大地线界定的四边形。因此,每个单元具有 4 个邻居。
语法
参数
s2index
— S2 索引。 UInt64。
返回值
示例
查询:
结果:
s2CellsIntersect
确定两个提供的 S2 单元是否相交。
语法
参数
s2index1
,s2index2
— S2 索引。 UInt64。
返回值
示例
查询:
结果:
s2CapContains
确定一个盖是否包含一个 S2 点。一个盖表示一个被平面切割掉的球体的一部分。它由一个在球面上的点和一个以度为单位的半径定义。
语法
参数
返回值
示例
查询:
结果:
s2CapUnion
确定包含给定两个输入盖的最小盖。一个盖表示一个被平面切掉的球面的一部分。它由一个在球面上的点和一个以度为单位的半径定义。
语法
参数
返回值
示例
查询:
结果:
s2RectAdd
增加边界矩形的大小以包含给定的 S2 点。在 S2 系统中,矩形由一种称为 S2LatLngRect
的 S2Region 类型表示,表示纬度-经度空间中的矩形。
语法
参数
s2PointLow
— 与矩形对应的低 S2 点索引。 UInt64。s2PointHigh
— 与矩形对应的高 S2 点索引。 UInt64。s2Point
— 目标 S2 点索引,边界矩形应扩展以包含该点。 UInt64。
返回值
示例
查询:
结果:
s2RectContains
确定给定矩形是否包含一个 S2 点。在 S2 系统中,矩形由一种称为 S2LatLngRect
的 S2Region 类型表示,表示纬度-经度空间中的矩形。
语法
参数
s2PointLow
— 与矩形对应的低 S2 点索引。 UInt64。s2PointHigh
— 与矩形对应的高 S2 点索引。 UInt64。s2Point
— 目标 S2 点索引。 UInt64。
返回值
1
— 如果矩形包含给定 S2 点。0
— 如果矩形不包含给定 S2 点。
示例
查询:
结果:
s2RectUnion
返回包含该矩形和给定矩形的并集的最小矩形。在 S2 系统中,矩形由一种称为 S2LatLngRect
的 S2Region 类型表示,表示纬度-经度空间中的矩形。
语法
参数
s2Rect1PointLow
,s2Rect1PointHi
— 与第一个矩形对应的低和高 S2 点索引。 UInt64。s2Rect2PointLow
,s2Rect2PointHi
— 与第二个矩形对应的低和高 S2 点索引。 UInt64。
返回值
s2UnionRect2PointLow
— 与并集矩形对应的低 S2 单元 ID。 UInt64。s2UnionRect2PointHi
— 与并集矩形对应的高 S2 单元 ID。 UInt64。
示例
查询:
结果:
s2RectIntersection
返回包含该矩形和给定矩形的交集的最小矩形。在 S2 系统中,矩形由一种称为 S2LatLngRect
的 S2Region 类型表示,表示纬度-经度空间中的矩形。
语法
参数
s2Rect1PointLow
,s2Rect1PointHi
— 与第一个矩形对应的低和高 S2 点索引。 UInt64。s2Rect2PointLow
,s2Rect2PointHi
— 与第二个矩形对应的低和高 S2 点索引。 UInt64。
返回值
s2UnionRect2PointLow
— 与包含给定矩形交集的矩形对应的低 S2 单元 ID。 UInt64。s2UnionRect2PointHi
— 与包含给定矩形交集的矩形对应的高 S2 单元 ID。 UInt64。
示例
查询:
结果: