AWS Machine Learning Blog

Visualize points and routes with GeoJSON in Amazon Quick Sight layer maps

6.9内容质量
Visualize points and routes with GeoJSON in Amazon Quick Sight layer maps

TL;DR · AI 摘要

Visualize points and routes with GeoJSON in Amazon Quick Sight layer maps Artificial Intelligence Visualize points and r...

核心要点

  • 主题聚焦:Visualize points and routes with GeoJSON in Amaz
  • 来源:AWS Machine Learning Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#安全
打开原文

使用GeoJSON在Amazon Quick Sight分层地图中可视化点和路线 | 人工智能

使用GeoJSON在Amazon Quick Sight分层地图中可视化点和路线

通过Amazon Quick Sight分层地图,您现在可以绘制点和路线,例如城市中的商店位置或机场出发的航班。地理空间地图帮助企业在地理位置相关的模式中发现洞察,例如某个地区的绩效或客户集中区域。Amazon Quick Sight通过多种地图类型支持这一功能,包括点地图、填充地图和分层地图。分层地图首次推出时,您可以通过上传GeoJSON文件绘制自定义形状图层(如销售区域或行政区),并将这些形状与数据集关联。这种方法能够很好地处理区域和边界,但无法覆盖其中的单个位置或它们之间的路线。

现在,分层地图通过相同的GeoJSON工作流支持两种新的几何类型:Point和LineString。点用于标记特定位置,例如单个商店或设施的位置。LineString则用于追踪位置之间的路线,例如配送路径或机场间的航班。

Amazon Quick Sight是Amazon Quick的商业智能(BI)功能,它是一款统一的BI服务。它提供现代交互式仪表板、自然语言查询、像素级精确的报告、机器学习(ML)洞察以及大规模嵌入式分析。Amazon Quick将用于商业洞察、研究和自动化的AI代理整合到一个集成体验中,帮助您更智能、更高效地工作,同时保持安全性和访问策略。

在本文中,我们将逐步介绍分层地图所需的数据集和GeoJSON结构。我们还将解释点和线在分层地图可视化中的工作原理以及何时选择每种类型。最后,我们将介绍控制视口、叠加几何图形以及以编程方式更新GeoJSON文件的高级技术。

数据集结构注意事项

分层地图从GeoJSON文件获取形状,从Quick Sight数据集获取指标,两者通过共享键进行关联。您对每个结构的构建方式决定了地图能够展示的内容。本节将介绍开始之前需要了解的内容以及GeoJSON文件的组织方式。

先决条件

在Quick Sight中创建分层地图之前,您需要满足以下先决条件:

  • 描述您几何形状的GeoJSON文件。
  • 包含指标和维度的Quick Sight数据集。
  • Quick Sight数据集与GeoJSON文件之间共享的连接键。
  • GeoJSON文件必须以.geojson格式保存,最大支持文件大小为100 MB。

GeoJSON文件的结构

GeoJSON是一种基于JSON的格式,用于描述点和线等地理特征。

code
{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "geometry": {
      "type": "Point",
      "coordinates": [88.4, 22.6]
    },
    "properties": { "prop0": "value0" }
  }, {
    "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [88.2, 22.4],
        [88.9, 23.1],
        [89.5, 22.8],
        [90.1, 23.6]
      ]
    },
    "properties": { "prop0": "value0" }
  }]
}

文件结构如下:

  • FeatureCollection是整个文件。它具有FeatureCollection类型和一个features数组。
  • Feature是单个地图元素。它包含一个geometry(形状)和一个properties对象,该对象保存连接键。
  • 几何对象具有类型(Point、LineString 或 Polygon)及其坐标。坐标对于 Point 类型包含一个单一的 [经度, 纬度] 位置,而对于 LineString 类型则包含一个有序的位置列表。

配置 Quick Sight 数据集及其 GeoJSON

在 Quick Sight 中,当你在图层地图可视化中配置一个图层时,需要考虑两个主要设置。第一个是选择要可视化的几何类型,这决定了 GeoJSON 文件中的哪些几何对象会被渲染:点、线或面。一个图层一次只能渲染一种几何类型,因此当文件混合类型(如前面的示例)时,地图上只会显示所选类型的要素。第二个是将形状文件的键字段与数据集的键字段进行匹配,这将 GeoJSON 中的每个要素链接到 Quick Sight 数据集中的对应行。字段名称不需要完全一致,但字段值必须匹配。以下两个示例展示了这一过程的完整流程,首先是 LineString 图层,然后是 Point 图层。

示例:LineString 图层

考虑一个显示从 JFK 到目的地城市(如洛杉矶)的航班示例数据。单个数据点的 GeoJSON 结构配置如下:

code
{
  "type": "Feature",
  "geometry": {
    "type": "LineString",
    "coordinates": [
      [-73.7781, 40.6413],
      [-85.5627, 40.6407],
      [-97.1415, 39.4569],
      [-108.1612, 37.1753],
      [-118.4085, 33.9416]
    ]
  },
  "properties": { "route_id": "JFK-LAX" }
}

Quick Sight 数据集中对应的行包含以下信息:

图 1:JFK-LAX 路线数据集行,通过 route_id 键关联

route_id 字段用于将 Quick Sight 数据集与 GeoJSON 文件连接。GeoJSON 中每条路线包含一个这样的要素,数据集每条路线对应一行。要可视化的几何类型设置为 Lines。

图 2:JFK-LAX 路线以 LineString 图层形式绘制

示例:Point 图层

考虑一个显示零售商店位置(如长岛市)的示例数据。单个数据点的 GeoJSON 结构配置如下:

code
{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [-73.9490, 40.7447]
  },
  "properties": { "store_id": "S-109" }
}

图 3:商店数据集行,通过 store_id 键关联

store_id 字段用于将 Quick Sight 数据集与 GeoJSON 文件连接。GeoJSON 中每个商店包含一个这样的要素,数据集每个商店对应一行。要可视化的几何类型设置为 Points。

图 4:商店以 Point 图层形式绘制

图层地图可视化中的线

图层地图可视化现在支持 LineString 几何类型,可以将有序的坐标列表连接成一条连续路径。如数据结构部分所述,每条路线是一个要素,其坐标是地图按顺序连接的有序位置。

当需要展示位置之间的关系时(如航班路线、配送路线、航运航道或管道段),应使用线。可视化会从 GeoJSON 文件的坐标中绘制每条路径,而不是在加载时从数据中生成。连接数据集中的一个字段可以确定线的颜色编码,因此可以根据该字段的值对路线进行分组。除了颜色之外,还可以通过调整线宽和透明度来定制线,以优化地图上的视觉突出度和清晰度。GeoJSON 属性对象中的连接键会将每个 LineString 与对应工具提示和颜色的数据集行关联。

例如,机场运营团队可能会绘制某天从纽约(JFK)出发的航班。GeoJSON 文件为每条航线存储一个 LineString,通过航线 ID 与数据集关联。每条线都从 JFK 出发,终点为洛杉矶、芝加哥或迈阿密等目的地。数据集提供了显示在工具提示中的出发地、目的地和承运商信息。

图 5:从 JFK 出发的航班以 LineString 路线形式绘制到多个目的地

图层地图视觉中的点要素

Amazon Quick Sight 提供了一种原生点地图视觉类型,可自动对位置名称进行地理编码,并根据 SPICE 调度或 Direct Query 连接进行刷新。它支持动态点大小、颜色编码以及聚类点和热力图密度梯度等点样式。它最适合用于频繁变化的数据,且希望地图能通过视觉效果响应这些变化的场景。

随着图层地图视觉对 GeoJSON 点图层的支持,Quick Sight 现在提供了第二种点映射功能,但存在一些关键差异。图层地图视觉点使用统一的标记大小且不支持地理编码,因此您需要在 GeoJSON 文件中提供显式坐标。作为交换,您可以精确控制视口,将地图锁定到特定地理区域,并禁用平移和缩放功能。

下表总结了关键差异:

| 功能 | 点地图 | 图层地图视觉点 | |------------------|-------------------------------|-------------------------------| | 数据源 | 数据集中的纬度/经度值或地理位置名称 | 通过共享键与数据集关联的 GeoJSON 点要素 | | 地理编码 | 自动识别城市、县、州、国家和邮政编码 | 不可用。必须在 GeoJSON 文件中提供显式坐标 | | 位置更新 | 随 SPICE 刷新或 Direct Query 自动更新位置 | 视觉使用静态 GeoJSON 文件定义点位置。需要手动重新上传或通过 API 调用更新几何形状 | | 视口 | 自动适配数据,始终启用平移和缩放 | 默认自动适配,可配置是否允许平移和缩放 | | 外观 | 可从数据集编码大小和颜色。支持点样式配置(基础、聚类、热力图) | 可自定义统一标记大小、填充透明度、边框颜色和厚度。颜色可从数据集编码 |

选择图层地图视觉点时考虑以下场景:

  • 需要锁定不可滚动的视口
  • 位置是固定且经过筛选的(如区域办公室、配送中心、零售商店),而非每次数据刷新时变化
  • 计划将点与其他几何类型组合(详见高级使用案例部分)

考虑一个零售品牌案例,其区域经理使用 Quick Sight 仪表板跟踪大都会区各门店的业绩。GeoJSON 文件中每个门店都有一个包含门店 ID 属性的点要素,该属性与数据集关联。数据集包含驱动工具提示和颜色编码的指标(门店类型、月收入、日客流量)。您将地图定位到覆盖大都会区的缩放级别,然后禁用地图导航,使地图在每次加载时都以一致的视角渲染。经理无法意外缩放至全国或全球视图。

图 6:禁用地图导航后以点形式显示的门店位置,锁定大都会区视图

高级使用案例

前几部分介绍了标准的图层地图配置方法。当需要更精确地控制读者所见内容、在单一视图中组合多种几何类型,或需要随时间变化的几何图形时,请使用以下技术。

控制视口

在需要控制图层地图视觉效果的视口时,可以手动平移和缩放至目标视图,然后禁用地图导航以固定视口位置。对于需要更精确边界或编程控制的场景,可通过Quick Sight API在视觉定义中设置精确的视口坐标。

图层地图视觉效果在ChartConfiguration的MapState属性中存储视口配置。该属性包含两个字段:

  • Bounds:定义最小可见区域的地理坐标(北、南、东、西)。
  • MapNavigation:设为ENABLED或DISABLED以控制读者是否可平移和缩放。

虽然Bounds属性在控制台中不可见,但可通过仪表板定义JSON进行编程资产管理时设置这些边界。例如,要定义边界,可修改视觉定义中的MapState块,然后调用CreateDashboard或UpdateDashboard API。

Bounds定义了保证可见的最小区域。地图会缩放以确保该区域完全适应视觉容器。为实现最紧密贴合且地图额外空间最少,应使Bounds的宽高比与视觉容器形状一致。

叠加几何图形

对于需要在单一视图中组合多种几何类型的场景,可通过叠加视觉效果实现。例如,下图展示了将客户位置作为点绘制在由多边形定义的美国区域边界内。这种组合能显示客户密度最高的地区,并可用于与数据集中的其他指标(如绩效)进行关联分析。

图7:客户点叠加在多边形区域边界内

第二个示例演示了如何将点作为配送路线路径上的停靠点叠加。LineString绘制计划路线,Point要素标记沿途每个计划停靠点。

图8:以LineString绘制的配送路线,每个停靠点用Point标记

要叠加几何图形,请按以下步骤叠加多个图层地图视觉效果:

  • 使用自由布局:将工作表布局设置为自由模式,使视觉效果可重叠和堆叠。
  • 创建两个图层地图视觉效果:创建两个将合并为单一视图的图层地图视觉效果,例如一个使用Point GeoJSON文件,另一个使用LineString GeoJSON文件。
  • 使用匹配边界:按照之前控制视口的方法,验证所有图层地图视觉效果使用相同的边界以获得一致的基础地图视图。
  • 禁用平移和缩放:对每个图层地图视觉效果,在地图选项中禁用平移和缩放以保持对齐一致。
  • 隐藏上层视觉效果的底图和背景:在显示设置中将上层视觉效果的背景设为隐藏,并在地图选项中禁用底图。
  • 叠加视觉效果:通过拖放操作或在显示设置中匹配精确尺寸和位置坐标,将上层视觉效果移动到底层之上。

图层顺序遵循自由形式布局中的视觉堆叠顺序。要更改视觉元素在堆叠中的位置,请选择视觉元素上的菜单图标(三个点),然后选择“发送到后方”或“移到前方”。读者可以访问最上层视觉元素的工具提示,因此请将需要显示详细信息的图层置于顶层。每个工作表最多支持五个图层地图可视化。

动态更新 GeoJSON

与其他 QuickSight 可视化不同,图层地图的几何形状本身存储在 GeoJSON 文件中。当您的数据集按计划刷新时,指标会更新(例如颜色变化和工具提示值刷新),但几何形状仍保持在原始位置。

要更新地图上显示的内容(例如新路线、新点位置或更新的边界),需要更新 GeoJSON 文件并重新发布仪表板。您可以通过 QuickSight 控制台手动替换 GeoJSON 文件,方法是在分析中编辑图层地图可视化并上传新文件。这种方法适用于不频繁的更改,例如每季度更新区域边界或添加新门店位置。

对于自动化、按需或动态更新,流程涉及 Amazon Simple Storage Service(Amazon S3)和以下步骤中概述的 QuickSight API:

  • 将新的 GeoJSON 上传到 Amazon S3:生成更新后的几何形状并将其保存到 Amazon S3 存储桶。自定义解决方案可以使用其他 AWS 服务(如 Amazon Location Service)来创建 GeoJSON 文件。
  • 在仪表板定义中引用文件:仪表板定义包含一个 StaticFiles 数组,每个 GeoJSON 文件都有一个 SpatialStaticFile 条目。修改每个 GeoJSON 文件的文件引用,指向更新后文件的 S3 位置。
  • 调用 UpdateDashboard API:使用 UpdateDashboard API 提交带有新文件引用的更新后定义。
  • 调用 UpdateDashboardPublishedVersion API:通过 UpdateDashboardPublishedVersion API 发布更改,使仪表板读者可见。

以下示例使用此模式支持嵌入式仪表板中的按需地图更新,以生成位置和航路点之间的最佳路线。尽管超出本文范围,但这代表了一个高级用例,结合了前面提到的所有方法。

图 9:嵌入式仪表板中的按需路线生成

结论

在本文中,我们展示了如何在 Amazon QuickSight 图层地图中使用点和线字符串几何图形来绘制特定位置及其之间的路线。我们介绍了图层地图所需的 GeoJSON 结构和数据集连接,并将图层地图点与原生点地图进行了比较。我们还介绍了控制视口、将多个可视化分层到一个视图中以及使用 Amazon S3 和 QuickSight API 刷新 GeoJSON 文件的高级技术。

要了解有关分层地图的更多信息,请参阅 Amazon QuickSight 分层地图文档。访问 Amazon Quick 社区,与同行交流并了解最新功能和资源。

作者简介