文档文档

按区域过滤地理时序数据

此页面记录了早期版本的 InfluxDB OSS。 InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 按区域过滤地理时序数据

使用 geo.filterRows 函数 按地理区域过滤地理时序数据

  1. 定义地理区域
  2. 使用严格或非严格过滤

以下示例使用示例鸟类迁徙数据,并查询埃及开罗 200 公里范围内的数据点

import "experimental/geo"

sampleGeoData
  |> geo.filterRows(
    region: {lat: 30.04, lon: 31.23, radius: 200.0},
    strict: true
  )

定义地理区域

Geo 包中的许多函数都基于地理区域过滤数据。 使用以下形状之一定义地理区域

box

通过指定包含以下属性的记录来定义盒状区域

  • minLat: 最小纬度,以十进制度表示 (WGS 84) (浮点数)
  • maxLat: 最大纬度,以十进制度表示 (WGS 84) (浮点数)
  • minLon: 最小经度,以十进制度表示 (WGS 84) (浮点数)
  • maxLon: 最大经度,以十进制度表示 (WGS 84) (浮点数)
盒状区域示例
{
  minLat: 40.51757813,
  maxLat: 40.86914063,
  minLon: -73.65234375,
  maxLon: -72.94921875
}

circle

通过指定包含以下属性的记录来定义圆形区域

  • lat: 圆心的纬度,以十进制度表示 (WGS 84) (浮点数)
  • lon: 圆心的经度,以十进制度表示 (WGS 84) (浮点数)
  • radius: 圆的半径,单位为千米 (km) (浮点数)
圆形区域示例
{
  lat: 40.69335938,
  lon: -73.30078125,
  radius: 20.0
}

polygon

使用包含多边形中每个点的纬度和经度的记录来定义多边形区域

  • points: 定义自定义多边形的点 (记录数组)

    使用包含以下属性的记录定义每个点

    - **lat**: latitude in decimal degrees (WGS 84) _(Float)_
    - **lon**: longitude in decimal degrees (WGS 84) _(Float)_
    
多边形区域示例
{
  points: [
    {lat: 40.671659, lon: -73.936631},
    {lat: 40.706543, lon: -73.749177},
    {lat: 40.791333, lon: -73.880327}
  ]
}

严格和非严格过滤

在大多数情况下,指定的地理区域与 S2 网格单元并非完全对齐。

  • 非严格过滤 返回可能在指定区域之外但在部分被该区域覆盖的 S2 网格单元内的点。
  • 严格过滤 仅返回指定区域内的点。

严格过滤的性能较低,但比非严格过滤更准确。

S2 网格单元
过滤区域
返回的点

严格过滤

非严格过滤


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。 您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源现已发布公开 Alpha 版本

InfluxDB 3 开源现在可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布作为 Alpha 版本一部分的两种产品。

InfluxDB 3 Core 是我们的全新开源产品。 它是用于时间序列和事件数据的最新数据引擎。 InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看