当前位置: 首页 > article >正文

【Elasticsearch】geohex grid聚合

在 Elasticsearch 中,地理边界过滤是一种用于筛选地理数据的技术,它可以根据指定的地理边界形状(如矩形、多边形等)来过滤符合条件的文档。这种方法在地理空间数据分析中非常有用,尤其是在需要将数据限制在特定地理区域内时。

 

 

 

什么是地理边界过滤?

地理边界过滤允许用户定义一个地理边界(如矩形、多边形或复杂的地理形状),并仅返回那些与该边界相交或完全包含在其中的地理数据。这种过滤方式可以用于`geo_point`和`geo_shape`类型的字段。

 

 

常见的地理边界过滤类型

 

1. `geo_bounding_box`:根据矩形边界框来过滤结果。需要指定左上角和右下角的坐标。

 

```json

   {

     "query": {

       "geo_bounding_box": {

         "location": {

           "top_left": {

             "lat": 52.4,

             "lon": 4.9

           },

           "bottom_right": {

             "lat": 52.3,

             "lon": 5.0

           }

         }

       }

     }

   }

   ```

 

 

 

2. `geo_polygon`:根据多边形区域来过滤结果。需要指定多边形的顶点坐标。

 

```json

   {

     "query": {

       "geo_polygon": {

         "location": {

           "points": [

             {"lat": 52.4, "lon": 4.9},

             {"lat": 52.3, "lon": 5.0},

             {"lat": 52.4, "lon": 5.0}

           ]

         }

       }

     }

   }

   ```

 

 

 

3. `geo_shape`:支持更复杂的地理形状查询,如国家边界等。

 

```json

   {

     "query": {

       "geo_shape": {

         "location": {

           "shape": {

             "type": "polygon",

             "coordinates": [

               [

                 [4.9, 52.4],

                 [5.0, 52.4],

                 [5.0, 52.3],

                 [4.9, 52.3],

                 [4.9, 52.4]

               ]

             ]

           }

         }

       }

     }

   }

   ```

 

 

 

在 Geohex Grid 聚合中的应用

在使用 Geohex Grid 聚合时,可以通过`bounds`参数来限制聚合的地理范围。`bounds`参数接受与`geo_bounding_box`查询相同的边界框格式。

 

```json

POST /museums/_search?size=0

{

  "aggregations": {

    "tiles-in-bounds": {

      "geohex_grid": {

        "field": "location",

        "precision": 12,

        "bounds": {

          "top_left": "POINT (4.9 52.4)",

          "bottom_right": "POINT (5.0 52.3)"

        }

      }

    }

  }

}

```

 

 

 

优势

 

• 提高查询效率:通过限制地理范围,可以减少需要处理的数据量,从而提高查询性能。

 

• 精确控制数据范围:确保聚合结果仅包含特定地理区域内的数据。

 

 

总结

地理边界过滤是 Elasticsearch 中一种强大的地理数据筛选技术,它可以根据用户定义的地理边界来筛选符合条件的文档。这种技术在地理空间数据分析中非常有用,尤其是在需要将数据限制在特定地理区域内时。


http://www.kler.cn/a/534392.html

相关文章:

  • Django框架丨从零开始的Django入门学习
  • 设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查
  • 排序算法--快速排序
  • mysql运维
  • 【数据结构-Trie树】力扣648. 单词替换
  • 如何解决云台重力补偿?
  • 洛谷网站: P3029 [USACO11NOV] Cow Lineup S 题解
  • 基于springboot的在线BLOG博客网
  • Flask+gevent 实现异步请求处理
  • 【高阶数据结构(一)】:LRU Cache
  • 【Day 30 LeetCode】动态规划DP
  • 苹果再度砍掉AR眼镜项目?AR真的是伪风口吗?
  • UE制作2d游戏
  • 《AI重塑网络开发:用户界面设计的革新之路》
  • 【分布式架构理论3】分布式调用(2):API 网关分析
  • ACK One 如何通过 GitOps DevOps 实现高效 CI/CD 流水线?
  • 深度学习-100-RAG技术之最简单的RAG系统概念和效果优化提升方向
  • (2025,LLM,下一 token 预测,扩散微调,L2D,推理增强,可扩展计算)从大语言模型到扩散微调
  • 旋钮屏设备物联网方案,ESP32-C3无线通信应用,助力设备智能化升级
  • 输入类控件和多元素控件【QT】
  • 使用Selenium和Jsoup框架进行Java爬虫
  • vue中嵌入iframe
  • 【BUUCTF杂项题】荷兰宽带数据泄露、九连环
  • Houdini subuv制作输出阵列图
  • 如何使用 Python 和 SQLAlchemy 结合外键映射来获取其他表中的数据
  • OpenCV:特征检测总结