跳到主要内容
跳到主要内容

处理 S2 索引的函数

S2Index

S2 是一种地理索引系统,其中所有地理数据都在三维球体上表示(类似于地球仪)。

在 S2 库中,点被表示为 S2 索引 - 一个特定的数字,它内部编码了单位球表面上的一个点,与传统的 (纬度,经度) 对不同。要获取以 (纬度,经度) 格式指定的给定点的 S2 点索引,请使用 geoToS2 函数。同时,您可以使用 s2ToGeo 函数获取与指定 S2 点索引对应的地理坐标。

geoToS2

返回与提供的坐标 (经度, 纬度) 对应的 S2 点索引。

语法

参数

返回值

示例

查询:

结果:

s2ToGeo

返回与提供的 S2 点索引对应的地理坐标 (经度, 纬度)

语法

参数

  • s2index — S2 索引。 UInt64

返回值

示例

查询:

结果:

s2GetNeighbors

返回与提供的 S2 对应的 S2 邻居索引。 S2 系统中的每个单元都是由四个大地线界定的四边形。因此,每个单元具有 4 个邻居。

语法

参数

  • s2index — S2 索引。 UInt64

返回值

  • 一个包含 4 个邻居索引的数组: array[s2index1, s2index3, s2index2, s2index4]Array(UInt64)。

示例

查询:

结果:

s2CellsIntersect

确定两个提供的 S2 单元是否相交。

语法

参数

  • s2index1, s2index2 — S2 索引。 UInt64

返回值

  • 1 — 如果单元相交。 UInt8
  • 0 — 如果单元不相交。 UInt8

示例

查询:

结果:

s2CapContains

确定一个盖是否包含一个 S2 点。一个盖表示一个被平面切割掉的球体的一部分。它由一个在球面上的点和一个以度为单位的半径定义。

语法

参数

  • center — 与盖对应的 S2 点索引。 UInt64
  • degrees — 以度为单位的盖的半径。 Float64
  • point — S2 点索引。 UInt64

返回值

  • 1 — 如果盖包含 S2 点索引。 UInt8
  • 0 — 如果盖不包含 S2 点索引。 UInt8

示例

查询:

结果:

s2CapUnion

确定包含给定两个输入盖的最小盖。一个盖表示一个被平面切掉的球面的一部分。它由一个在球面上的点和一个以度为单位的半径定义。

语法

参数

  • center1, center2 — 与两个输入盖对应的 S2 点索引。 UInt64
  • radius1, radius2 — 两个输入盖的半径(以度为单位)。 Float64

返回值

  • center — 与包含两个输入盖的最小盖中心对应的 S2 点索引。 UInt64
  • radius — 包含两个输入盖的最小盖的半径。 Float64

示例

查询:

结果:

s2RectAdd

增加边界矩形的大小以包含给定的 S2 点。在 S2 系统中,矩形由一种称为 S2LatLngRect 的 S2Region 类型表示,表示纬度-经度空间中的矩形。

语法

参数

  • s2PointLow — 与矩形对应的低 S2 点索引。 UInt64
  • s2PointHigh — 与矩形对应的高 S2 点索引。 UInt64
  • s2Point — 目标 S2 点索引,边界矩形应扩展以包含该点。 UInt64

返回值

  • s2PointLow — 与扩展后的矩形对应的低 S2 单元 ID。 UInt64
  • s2PointHigh — 与扩展后的矩形对应的高 S2 单元 ID。 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

示例

查询:

结果: