地图
Metabase 有三种类型的地图可视化
- 图钉地图:用于使用经纬度坐标在地图上标记单个数据点;
- 网格地图:用于在指定区域内分布大量点。
- 区域地图:用于按地区(如国家或州)划分的数据。Metabase 内置了两种地图,但您也可以上传自己的自定义区域。
当您选择**地图**可视化设置时,Metabase 将根据表或结果集自动尝试选择最佳的地图类型,只要包含地理数据的列具有正确的元数据即可。
图钉地图
图钉地图在地图上为单个数据点显示图钉。它们最适合显示未聚合的地理数据。
图钉地图数据格式
要构建图钉地图,您需要一个返回包含纬度和经度列的结果的查询。Metabase 会根据纬度和经度字段,为表中的每一行在地图上放置一个图钉。行中的其他数据将显示在工具提示中,而不会影响图钉的位置或形状。
请注意,工具提示只有在使用拖拽方框进行筛选将地图充分放大后才会显示。
创建图钉地图
要创建图钉地图:
- 为每个数据点构建一个包含纬度和经度列的查询(可以在查询构建器中或使用 SQL);
- 选择**可视化**,然后选择**地图**;
-
如果您的查询结果中,有列的字段类型在表元数据中被设置为纬度/经度,Metabase 应该会自动构建一个图钉地图。
否则,点击**齿轮**图标进入可视化设置,选择**地图类型:图钉地图**,并选择包含纬度和经度坐标的列。
图钉地图默认显示 2000 个图钉
默认情况下,即使查询结果中有更多行,图钉地图也只会显示 2000 个图钉(这个限制对于 Metabase 中所有显示未聚合数据的图表都是相同的)。您可以使用环境变量 MB_UNAGGREGATED_QUERY_ROW_LIMIT
来增加基于未聚合查询的图表上渲染的数据点数量,但请记住,此设置将影响所有图表——不仅仅是图钉地图——并且可能会显著降低 Metabase 和浏览器的速度。
如果您需要显示大量的地理数据点,请考虑使用网格地图来显示分布情况。
网格地图
网格地图是图钉地图的聚合版本——就像一个显示图钉分布的热力图。网格地图根据经纬度将地图划分为网格,然后根据每个网格单元中数据点的数量为其着色。
网格地图数据格式
要创建网格地图,您需要有一个查询,该查询返回按分箱的经纬度坐标汇总的指标。
如果您在查询构建器中编写查询,可以在**分组**块中选择如何对经纬度进行分箱。如果您使用 SQL 编写查询,则需要自己添加分箱逻辑。
创建网格地图
要创建网格地图:
- 构建一个按分箱的纬度和经度列进行汇总的查询(可以在查询构建器中或使用 SQL);
- 选择**可视化**,然后选择**地图**;
-
如果您的查询结果中,有列的字段类型在表元数据中被设置为纬度/经度,Metabase 应该会自动构建一个网格地图。
否则,点击**齿轮**图标进入可视化设置,选择**地图类型:网格地图**,并选择包含纬度和经度坐标的列。
- 如果您的查询包含多个指标,您可以在可视化设置中选择要显示的一个。
区域地图
区域地图显示按地区划分的聚合数据分布,例如按国家划分的用户数量。
Metabase 内置了两个区域:带有国家的世界地图和带有州的美国地图。管理员可以在管理设置中添加自定义区域。
您可以通过设置环境变量 MB_DEFAULT_MAPS_ENABLED
来禁用默认区域。
区域地图数据格式
要构建区域地图,您需要一个查询(可以是使用查询构建器构建的问题,也可以是原生查询),该查询至少包含两列:包含区域名称的列和包含您想按区域显示的指标的列。
查询结果中的区域名称必须与区域名称完全匹配(区分大小写):世界地图使用两位国家代码,美国地图使用两位州代码或州名,或者自定义区域中的区域标识符。
要构建区域地图,您的查询结果中必须有一个包含区域名称的列,即使您的查询结果中也包含经纬度坐标。Metabase 无法从经纬度坐标推断区域,也不会检查数据点的坐标是否与该数据点的区域一致。
创建区域地图
要创建区域地图:
- 构建一个按区域名称汇总的查询(可以在查询构建器中或使用 SQL)。
- 选择**可视化**,然后选择**地图**;
- 选择**地图类型:区域**;
- 选择区域地图:世界地图(内置)、美国(内置)或
- 在**区域字段**中选择包含区域名称的列。
- 如果您的查询包含多个指标,您可以在**指标字段**中选择要显示的一个。
您可以更改区域地图使用的基础颜色,但目前无法使用自定义颜色渐变(例如,从红色到绿色),也无法更改 Metabase 对指标进行分箱的方式。
世界地图
要以世界地图(按国家划分)的格式可视化您的结果,您的结果必须包含一列带有两位 ISO 国家代码(如“US”或“BR”)或国家名称(如“United States of America”或“Brazil”)的数据。例如:
国家代码 | 指标 |
---|---|
US | 36 |
BR | 25 |
IN | 62 |
RO | 78 |
查询结果中的国家代码必须与两位代码完全匹配:如果国家代码是小写或包含多余的空格,Metabase 将无法识别它们。
如果您的查询结果中包含语义类型为“国家”的列,Metabase 应该会自动构建一个世界地图。否则,您可以在**区域字段**可视化设置中选择要用作国家名称的列。
您可以将世界区域地图中的国家列连接到“位置”类型的仪表盘筛选器。
美国地图
要根据您的数据创建美国地图,您的结果必须包含一列州名或两位州代码,例如“NM”或“New Mexico”。例如:
州 | 指标 |
---|---|
California | 45 |
New York | 56 |
Texas | 34 |
Illinois | 67 |
如果您的查询结果中包含语义类型为“州”的列,Metabase 应该会自动构建一个美国地图。否则,您可以在可视化设置中选择要用作州名的列。
您可以将美国区域地图中的州列连接到“位置”类型的仪表盘筛选器。
自定义区域
管理员可以通过在**管理设置**中添加自定义 GeoJSON 地图来添加更多区域,例如巴西的州或纽约市的社区。添加自定义地图后,您就可以在构建区域地图时在地图设置中选择它们。
您的查询结果必须包含一列值,这些值与自定义地图设置中的*区域标识符*属性匹配(而不是区域显示名称)。
如果您想将自定义区域地图中的区域列连接到仪表盘筛选器,您需要使用“文本或类别”仪表盘筛选器类型,而不是“位置”类型。
使用地图
钻取
- 图钉地图:如果图钉链接到其他表,或者工具提示中信息太多无法容纳,点击图钉将带您进入一个详情页面,该页面显示字段列表以及连接的表列表。
- 网格地图:如果您点击一个网格单元,您将获得一个选项,可以进一步放大到该单元格。
- 世界区域地图和美国州区域地图:如果您的未聚合数据也包含每个数据点的经纬度坐标(除了区域名称),那么您将获得一个选项,可以放大到特定区域,这将创建一个按经纬度分箱的该区域数据点的网格地图。这仅适用于内置的区域地图,不适用于自定义区域地图。
设为默认视图
在图钉地图和网格地图上,每次刷新页面时,地图都会重置为默认视图。要控制某人打开地图时显示的内容(例如,以特定点为中心,具有特定的缩放级别),请调整您的地图方向。这将成为页面刷新后地图返回的新默认视图。
拖拽方框进行筛选
在图钉地图和网格地图上,筛选框允许您放大或按特定区域筛选数据。
您可以点击**拖拽方框进行筛选**并将鼠标悬停在地图上。要勾勒出地图的一部分,按住鼠标并拖动以创建一个透明的蓝色方框。勾勒出目标区域后,松开鼠标,您的地图将更新以筛选所选区域内的数据。如果您设置了默认视图,则视图将保持静止。如果未设置默认视图,视图将放大到所选区域。
拖拽方框会为您的查询添加筛选器。
自定义地图瓦片
管理员可以自定义用于图钉地图和网格地图的背景瓦片,请参阅更改地图瓦片服务器。
目前,Metabase 每个实例使用一个瓦片服务器。您不能为不同的地图指定不同的瓦片。
限制
-
目前,您无法在地图上自定义以下可视化设置:
- 图钉地图上图钉的颜色;
- 网格地图上分箱的颜色;
- 区域地图的分箱数量或大小。
- 您不能组合不同类型的地图。例如,您不能在区域地图上放置图钉。
- 在将自定义区域地图连接到仪表盘筛选器时,您需要使用类别(而非位置)仪表盘筛选器类型。
- 您不能为不同的地图指定不同的背景瓦片。
何时不应使用地图可视化地理数据
如果地图上各区域的相对位置不是您可视化的主要焦点,请考虑使用条形图或行图。例如,按州划分的销售额通常用行图或条形图比用区域地图更能清晰地表示。
阅读其他版本的 Metabase 的文档。