使用反向地理编码绘制自定义区域
编辑使用反向地理编码绘制自定义区域
编辑地图 带有 预定义区域,使您可以快速按指标可视化区域。地图 还提供了绘制您自己区域的功能。只要您的源数据包含相应区域的标识符,您就可以使用任何您想要的区域数据。
但是,当您的源数据不包含区域标识符时,您如何绘制区域?这就是反向地理编码的用武之地。反向地理编码是根据要素的位置为其分配区域标识符的过程。
在本教程中,您将使用反向地理编码来可视化美国人口普查局的联合统计区域 (CSA),并按网络流量进行显示。
您将学习
- 上传自定义区域。
- 使用 Elasticsearch enrich 处理器 进行反向地理编码。
- 创建地图并通过网络流量可视化 CSA 区域。
完成本教程后,您将拥有如下所示的地图
步骤 1:索引网络流量数据
编辑GeoIP 是一种将 IP 地址转换为经度和纬度的常用方法。GeoIP 在全球范围内对城市级别大致准确,在选定国家/地区对社区级别准确。它不如手机的实际 GPS 位置那么好,但比仅仅一个国家、州或省要精确得多。
在本教程中,您将使用 Kibana 随附的 Web 日志示例数据集。Web 日志示例数据集具有经度和纬度。如果您的 Web 日志数据不包含经度和纬度,请使用 GeoIP 处理器 将 IP 地址转换为 geo_point 字段。
要安装 Web 日志示例数据集,请参阅 添加示例数据。
步骤 2:索引联合统计区域 (CSA) 区域
编辑GeoIP 的详细程度对于推动决策制定非常有用。例如,假设您想根据用户的位置发起营销活动,或者向执行利益相关者展示哪些大都市地区正在经历流量增加。
美国的那种规模通常由人口普查局所谓的联合统计区域 (CSA) 来捕获。CSA 大致等同于人们直观地认为自己居住在哪个城市区域。它不一定与州或城市边界重合。
CSA 通常共享相同的电信提供商和广告网络。新的快餐连锁店会扩展到 CSA,而不是特定的城市或自治市。基本上,同一个 CSA 中的人在同一家宜家购物。
要获取 CSA 边界数据
- 转到 人口普查局网站 并下载
cb_2018_us_csa_500k.zip
文件。 - 解压缩 zip 文件。
- 在 Kibana 中,转到 地图。
- 单击 创建地图。
- 单击 添加图层。
- 单击 上传文件。
- 使用文件选择器从 CSA shapefile 文件夹中选择
.shp
文件。 - 使用
.dbf
文件选择器从 CSA shapefile 文件夹中选择.dbf
文件。 - 使用
.prj
文件选择器从 CSA shapefile 文件夹中选择.prj
文件。 - 使用
.shx
文件选择器从 CSA shapefile 文件夹中选择.shx
文件。 - 将索引名称设置为 csa 并单击 导入文件。
- 导入完成后,单击 添加为文档图层。
-
添加工具提示字段
- 单击 + 添加 以打开字段选择。
- 选择 NAME、GEOID 和 AFFGEOID。
- 单击 添加。
- 单击 保留更改。
查看地图,您可以了解人口普查局眼中的大都市区域构成。
步骤 3:反向地理编码
编辑要通过 Web 日志流量可视化 CSA 区域,Web 日志流量必须包含 CSA 区域标识符。您将使用 Elasticsearch enrich 处理器 将 CSA 区域标识符添加到 Web 日志示例数据集中。如果您的源数据已包含区域标识符,则可以跳过此步骤。
- 使用导航菜单或 全局搜索字段 转到 开发工具。
-
在 控制台 中,创建 geo_match 富集策略
PUT /_enrich/policy/csa_lookup { "geo_match": { "indices": "csa", "match_field": "geometry", "enrich_fields": [ "GEOID", "NAME"] } }
-
要初始化策略,请运行
POST /_enrich/policy/csa_lookup/_execute
-
要创建 ingest 管道,请运行
PUT _ingest/pipeline/lonlat-to-csa { "description": "Reverse geocode longitude-latitude to combined statistical area", "processors": [ { "enrich": { "field": "geo.coordinates", "policy_name": "csa_lookup", "target_field": "csa", "ignore_missing": true, "ignore_failure": true, "description": "Lookup the csa identifier" } }, { "remove": { "field": "csa.geometry", "ignore_missing": true, "ignore_failure": true, "description": "Remove the shape field" } } ] }
-
要更新现有数据,请运行
POST kibana_sample_data_logs/_update_by_query?pipeline=lonlat-to-csa
-
要在摄取时在新文档上运行管道,请运行
PUT kibana_sample_data_logs/_settings { "index": { "default_pipeline": "lonlat-to-csa" } }
- 转到 Discover。
- 将数据视图设置为 Kibana 示例数据日志。
- 打开 时间筛选器,并将时间范围设置为最近 30 天。
- 浏览 可用字段 列表,直到找到
csa.GEOID
字段。您也可以按名称搜索该字段。 - 单击 以将该字段切换到文档表中。
- 找到 csa.NAME 字段并将其添加到文档表中。
您的 Web 日志数据现在包含来自匹配的 csa 区域的 csa.GEOID
和 csa.NAME
字段。不包含在 CSA 区域中的 Web 日志流量没有 csa.GEOID
和 csa.NAME
字段的值。
步骤 4:通过网络流量可视化联合统计区域 (CSA) 区域
编辑现在,我们的网络流量包含 CSA 区域标识符,您将通过网络流量可视化 CSA 区域。
- 转到 地图。
- 单击 创建地图。
- 单击 添加图层。
- 单击 等值线图。
-
对于 边界源
- 选择 来自 Elasticsearch 的点、线和多边形。
- 将 数据视图 设置为 csa。
- 将 连接字段 设置为 GEOID。
-
对于 统计信息源
- 将 数据视图 设置为 Kibana 示例数据日志。
- 将 连接字段 设置为 csa.GEOID.keyword。
- 单击 添加并继续。
- 滚动到 图层样式 并将 标签 设置为 固定。
- 单击 保留更改。
-
保存 地图。
- 为地图指定标题。
- 在 添加到仪表板 下,选择 无。
- 单击 保存并添加到库。
恭喜!您已完成本教程,并掌握了可视化自定义区域的方法。现在,您可以尝试使用自己的数据复制相同的分析。