使用 Power BI 自定义形状地图
Using a Power BI Custom Shape Map
我一直在尝试在 Power BI 中使用自定义形状图,但无法正常工作。
这一切背后的想法是从 .shp 文件、.dbf 文件和 .prj 文件开始,并将其导出到实际在 Power BI 中工作的 TopoJson 文件,以便通过颜色饱和度显示县之间的差异。
为此,我一直在使用 https://mapshaper.org 网站。
这是我开始使用的文件:
https://drive.google.com/open?id=17EtWd5YqEV4k5ctuJIFI9JDJIK8joCnG
这就是我希望它在 Power BI 中使用的内容:
Map Shaper .shp file without .dbf file
我找到了这些信息,如果我能理解的话可能对我有所帮助
Power BI. Using custom map as base map
使用 mapshaper 后,您应该会得到一个拓扑 json 文件,这个 json 文件我假设您已经在形状地图可视化中导入 Power BI。
在 topojson 文件中,地图的每个单独部分 "should" 都被分配了一个 ID 或标识符。因此,在 text/scripting 编辑器中查看 json 文件以识别这些文件。
将您的数据集导入 Power BI,然后您需要将每个数据值映射到标识符。显然,如何执行此操作取决于您...如果愿意,您可以编写一个巨大的 "if/else" dax 公式,但关键是导入数据的每一行都有另一列,该列具有等效的 ID json 文件。
您可以直接从 json 文件中获取形状映射键。这是一个例子:NZ.json
let
Source = Json.Document(File.Contents("C:\NZ.json")),
#"Converted to Table" = Record.ToTable(Source),
Value1 = #"Converted to Table"{3}[Value],
#"Converted to Table1" = Record.ToTable(Value1),
Value2 = #"Converted to Table1"{0}[Value],
geometries = Value2[geometries],
#"Converted to Table2" = Table.FromList(geometries, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table2", "Column1", {"arcs", "type", "properties"}, {"arcs", "type", "properties"}),
#"Removed Other Columns" = Table.SelectColumns(#"Expanded Column1",{"properties"}),
ColumnNames = Record.FieldNames(#"Removed Other Columns"[properties]{0}),
ExpandProperties = Table.ExpandRecordColumn(#"Removed Other Columns", "properties", ColumnNames, ColumnNames)
in
ExpandProperties
我一直在尝试在 Power BI 中使用自定义形状图,但无法正常工作。 这一切背后的想法是从 .shp 文件、.dbf 文件和 .prj 文件开始,并将其导出到实际在 Power BI 中工作的 TopoJson 文件,以便通过颜色饱和度显示县之间的差异。
为此,我一直在使用 https://mapshaper.org 网站。
这是我开始使用的文件:
https://drive.google.com/open?id=17EtWd5YqEV4k5ctuJIFI9JDJIK8joCnG
这就是我希望它在 Power BI 中使用的内容:
Map Shaper .shp file without .dbf file
我找到了这些信息,如果我能理解的话可能对我有所帮助
Power BI. Using custom map as base map
使用 mapshaper 后,您应该会得到一个拓扑 json 文件,这个 json 文件我假设您已经在形状地图可视化中导入 Power BI。
在 topojson 文件中,地图的每个单独部分 "should" 都被分配了一个 ID 或标识符。因此,在 text/scripting 编辑器中查看 json 文件以识别这些文件。
将您的数据集导入 Power BI,然后您需要将每个数据值映射到标识符。显然,如何执行此操作取决于您...如果愿意,您可以编写一个巨大的 "if/else" dax 公式,但关键是导入数据的每一行都有另一列,该列具有等效的 ID json 文件。
您可以直接从 json 文件中获取形状映射键。这是一个例子:NZ.json
let
Source = Json.Document(File.Contents("C:\NZ.json")),
#"Converted to Table" = Record.ToTable(Source),
Value1 = #"Converted to Table"{3}[Value],
#"Converted to Table1" = Record.ToTable(Value1),
Value2 = #"Converted to Table1"{0}[Value],
geometries = Value2[geometries],
#"Converted to Table2" = Table.FromList(geometries, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table2", "Column1", {"arcs", "type", "properties"}, {"arcs", "type", "properties"}),
#"Removed Other Columns" = Table.SelectColumns(#"Expanded Column1",{"properties"}),
ColumnNames = Record.FieldNames(#"Removed Other Columns"[properties]{0}),
ExpandProperties = Table.ExpandRecordColumn(#"Removed Other Columns", "properties", ColumnNames, ColumnNames)
in
ExpandProperties