文档资料

geo 包

geo 包是实验性的,并且 随时可能更改

geo 包提供了处理地理时间数据的工具,例如根据地理位置进行过滤和分组。导入 experimental/geo

import "experimental/geo"

地理模式要求

Geo 包使用 Go 实现的 S2 几何库。Geo 包中的函数需要以下内容

  • 一个包含 s2_cell_id 标签,其中包含一个 S2 单元 ID 作为标记
  • 一个包含 lat 字段,其中包含 十进制度数纬度(WGS 84)
  • 一个包含 lon 字段,其中包含 十进制度数经度(WGS 84)

模式建议

  • 一个标识数据源的标签
  • 一个标识点类型的标签(例如:startstopvia
  • 一个标识轨迹或路线的字段(例如:idtid
地理时间线协议示例
taxi,pt=start,s2_cell_id=89c2594 tip=3.75,dist=14.3,lat=40.744614,lon=-73.979424,tid=1572566401123234345i 1572566401947779410
bike,id=biker-007,pt=via,s2_cell_id=89c25dc lat=40.753944,lon=-73.992035,tid=1572588100i 1572567115

S2 单元 ID

使用 S2 几何库的 s2.CellID.ToToken 端点与 纬度经度 一起生成 s2_cell_id 标签。指定您的 S2 单元 ID 级别

注意:为了快速过滤,请使用较高的 S2 单元 ID 级别,但请注意,较高的级别会增加 系列基数

S2 几何库的语言特定实现提供了生成 S2 单元 ID 标记的方法。例如

将 S2 单元 ID 添加到现有的地理时间数据

使用 geo.shapeData()s2_cell_id 标签添加到包含具有纬度和经度值的字段的数据。

//...
  |> shapeData(
    latField: "latitude",
    lonField: "longitude",
    level: 10
  )

纬度和经度值

Flux 支持以 十进制度数(WGS 84)表示的纬度和经度值。

坐标最小值最大值
纬度-90.090.0
经度-180.0180.0

区域定义

Geo包中的许多函数根据地理区域过滤数据。使用以下形状定义地理区域:

矩形

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

  • minLat: 十进制度数(WGS 84)的最小纬度 (Float)
  • maxLat: 十进制度数(WGS 84)的最大纬度 (Float)
  • minLon: 十进制度数(WGS 84)的最小经度 (Float)
  • maxLon: 十进制度数(WGS 84)的最大经度 (Float)
示例矩形区域
{
  minLat: 40.51757813,
  maxLat: 40.86914063,
  minLon: -73.65234375,
  maxLon: -72.94921875
}

圆形

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

  • lat: 圆心纬度(WGS 84)的十进制度数 (Float)
  • lon: 圆心经度(WGS 84)的十进制度数 (Float)
  • radius: 圆的半径(公里) (Float)
示例圆形区域
{
  lat: 40.69335938,
  lon: -73.30078125,
  radius: 20.0
}

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

  • lat: 十进制度数的纬度(WGS 84) (Float)
  • lon: 十进制度数的经度(WGS 84) (Float)
示例点区域
{
  lat: 40.671659,
  lon: -73.936631
}

多边形

使用包含以下属性的记录来定义自定义多边形区域:

  • 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}
  ]
}

GIS 几何定义

Geo包中的许多函数基于地理信息系统(GIS)数据操纵数据。使用以下方式定义GIS几何形状:

折线

使用包含以下属性的记录定义地理折线路径:

  • linestring: 包含逗号分隔的经纬度坐标对(lon lat,)的字符串
{
  linestring: "39.7515 14.01433, 38.3527 13.9228, 36.9978 15.08433"
}

距离单位

geo包支持以下距离测量单位:

  • m - 米
  • km - 公里 (默认)
  • mile - 英里

定义距离单位

使用units选项来定义自定义单位

import "experimental/geo"

option geo.units = {distance: "mile"}

选项

option geo.units = {distance: "km"}

units

units定义在地理时间操作中使用的测量单位。

函数


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以在不更改代码的情况下继续像现在一样使用它。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群现在已普遍可用

新功能包括更快的查询性能和管理工具,InfluxDB v3 产品线现在已普遍可用。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您的 InfluxDB 集群的健康状况,InfluxDB Cloud Dedicated 中的单点登录 (SSO) 支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群普遍可用

InfluxDB 集群现在已普遍可用,并为您提供了在自行管理的堆栈中使用 InfluxDB v3 的能力。

与我们谈谈 InfluxDB 集群