如何为TopoJSON文件添加标签并在Power BI自定义形状地图中显示?
在Power BI自定义TopoJSON形状地图中添加可交互标签的解决方案
我通过TopoJSON文件在Power BI中制作了一个工作部门的自定义形状地图(非地理地图),点击区域可对数据矩阵进行过滤。但直接在地图上方添加文本框会阻断区域的交互功能,因此需要通过修改TopoJSON文件实现内置可交互标签。
现有TopoJSON代码片段
{ "type": "Topology", "arcs": [ [[-61.25,1000],[700,0],[0,-70],[-700.5,0],[0,70]], [[658.75,1000],[700,0],[0,-70],[-700.5,0],[0,70]], [[1378.75,1000],[700.5,0],[0,-70],[-700.5,0],[0,70]], [[2098.75,1000],[700.5,0],[0,-70],[-700.5,0],[0,70]], // 剩余arcs代码省略 ], "transform": { "scale": [0.000001, 0.000001], "translate": [0, 0] }, "objects": { "NameHere": { "type": "GeometryCollection", "geometries": [ { "arcs": [[0]], "type": "Polygon", "properties": {"id": "Department 1"} }, { "arcs": [[1]], "type": "Polygon", "properties": {"id": "Department 2"} }, // 剩余geometries代码省略 ] } } }
自定义形状地图效果

解决方案
1. 修改TopoJSON添加标签属性
在每个Polygon的properties对象中新增label字段,填入需要显示的标签内容:
{ "arcs": [[0]], "type": "Polygon", "properties": {"id": "Department 1", "label": "部门1:运营管理"} }
重复此操作,为所有部门区域添加对应的标签。
2. 在Power BI中配置标签显示
- 将修改后的TopoJSON重新导入Power BI的Shape Map视觉对象
- 进入视觉对象的格式面板,找到数据标签选项并启用
- 在标签内容中选择新增的
label字段,同时调整标签的字体大小、颜色和位置(建议设置为居中显示) - 完成配置后,标签会直接显示在对应区域上,且不会阻断区域的点击过滤功能
3. 备选方案:使用第三方自定义视觉
如果原生Shape Map的标签功能无法满足需求,可以使用Synoptic Panel这类第三方自定义视觉对象:
- 在Power BI Marketplace中安装Synoptic Panel
- 导入修改后的TopoJSON文件,直接在配置界面中选择
label字段作为显示标签 - 该视觉对象支持更灵活的样式调整,且完全保留区域的交互过滤能力
内容的提问来源于stack exchange,提问作者carly m
相关产品推荐
相关产品推荐

