按区域过滤地理时序数据
此页面记录了早期版本的 InfluxDB OSS。 InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 按区域过滤地理时序数据。
使用 geo.filterRows
函数 按地理区域过滤地理时序数据
以下示例使用示例鸟类迁徙数据,并查询埃及开罗 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 网格单元
过滤区域
返回的点
严格过滤
非严格过滤
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子! 我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。 要获得支持,请使用以下资源
拥有年度合同或支持合同的客户 可以联系 InfluxData 支持。