You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kibana中基于交易经纬度创建地理热力地图可视化?

在Kibana中基于交易经纬度创建热力地图可视化指南

一、先确保Elasticsearch中的地理数据格式合规

Elasticsearch的地理地图依赖geo_point类型字段,当前日志里的Latitude和Longitude是分开的数值/文本字段,需要合并为标准地理点格式,你有两种实现方式:

方式1:直接修改源应用日志格式

在输出日志时,把经纬度合并为一个location字段,格式为纬度,经度(注意顺序是纬度在前、经度在后),示例输出:

Location: 34.0522,-118.2437

后续摄入Elasticsearch时,只需在索引模板中把location字段设为geo_point类型即可。

方式2:用摄入管道/Logstash转换现有字段

如果不想修改源应用,可通过数据处理组件转换:

用Elastic摄入管道处理

  1. 进入Kibana的Stack Management > Ingest Pipelines,创建新管道
  2. 添加一个Script处理器,输入以下脚本合并经纬度:
ctx.location = [ctx.Longitude, ctx.Latitude];
  1. 给目标索引配置索引模板,确保location字段为geo_point类型:
{
  "mappings": {
    "properties": {
      "location": {
        "type": "geo_point"
      }
    }
  }
}

用Logstash处理

在Logstash的filter配置中添加以下规则,合并并转换字段类型:

filter {
  mutate {
    add_field => { "[location][lat]" => "%{Latitude}" }
    add_field => { "[location][lon]" => "%{Longitude}" }
  }
  mutate {
    convert => { "[location][lat]" => "float" }
    convert => { "[location][lon]" => "float" }
  }
}

输出到Elasticsearch时,同样要确保索引的location字段是geo_point类型。

二、创建热力地图可视化

  1. 进入Kibana的Visualize Library,点击Create visualization,选择Map类型
  2. 在地图编辑器中,点击Add layer,选择Heat map层
  3. 在Data source中选择你的交易日志索引
  4. 在Location field下拉框中选择已配置好的location(geo_point类型)字段
  5. 调整热力图参数:
    • Weight:选择聚合维度,比如用Count统计交易数量,或选择交易金额字段展示金额热力分布
    • Radius:开启Scale radius with zoom选项,实现缩放时精度自动调整(放大地图时半径缩小,显示更精细的商户分布)
    • Color gradient:自定义热力颜色,比如用红黄色系表示交易密度从低到高
  6. 可添加时间过滤器,按时间段筛选交易数据,查看不同时段的热力分布
  7. 完成配置后,点击Save保存可视化,也可添加到仪表盘展示

三、优化缩放精度的额外设置

  • 在热力层的Advanced options中,可设置Minimum zoom和Maximum zoom对应的半径范围,比如缩小地图时用20px半径,放大到街道级别时用5px半径
  • 选择Geo grid聚合方式,设置不同缩放级别下的网格精度(低缩放用coarse网格,高缩放用fine网格),让聚合结果随地图缩放更精准

内容的提问来源于stack exchange,提问作者Ryan.Bartsch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:30:57