如何用四列表格在Shape Map中显示区域?遇悬停区域未定义问题
核对区域名称的一致性
这是最容易踩的坑:你Excel里的区域名称(比如数据中的地区列)必须和TopoJSON文件里定义的区域名称完全一致,包括大小写、空格、特殊符号。比如TopoJSON里写的是“广州市”,你数据里就不能写成“广州”,差一个字都不行。
可以用记事本这类文本编辑器打开TopoJSON文件,搜properties关键词,找到存储区域名称的字段(比如可能叫name、area),把里面的名称和你Excel里的内容逐一比对。设置正确的属性映射字段
在Power BI的Shape Map视觉对象「格式」面板里,找到「形状」选项,要选择TopoJSON文件中对应区域名称的属性字段。比如TopoJSON里区域名称存在properties.name下,就必须在Power BI里选中"name"作为匹配的字段,不能选错。检查数据列的类型
确保Excel里的区域名称列是文本类型,别设成数字或其他类型。可以打开Power Query编辑器,选中该列,右键设置数据类型为“文本”,避免因类型不匹配导致识别失败。验证TopoJSON文件的有效性
有时候转换后的TopoJSON可能损坏或丢失了属性信息,你可以用本地的TopoJSON查看工具打开文件,确认区域边界和对应的名称都正常显示。如果有问题,重新用MapShaper这类工具把原始Shapefile转换成TopoJSON,转换时记得保留所有属性字段。重新创建Shape Map关联
删掉当前出问题的Shape Map,重新添加一个新的,再把数据列拖拽到「位置」字段,选择你上传的自定义地图,确保整个关联流程正确,避免之前的配置残留导致问题。
内容的提问来源于stack exchange,提问作者Razor64

