中国省市县级地图绘制geojson和topojson的方法-适用于PowerBI等多种可视化工具作图 by btharp

时间:2024-03-22 13:37:59

初始需求

绘制中国地图,能够进行省——市——县区两级或者三级下钻。
常见的可视化软件需要用到geojson、topojson或者svg格式的文件进行作图。

解决办法——准确的数据源

  1. 行政区划标准,含各区编号,查看国家民政部http://www.mca.gov.cn/article/sj/xzqh/2019/
  2. 地图数据可查看阿里的DATAV.GeoAtlas
    http://datav.aliyun.com/tools/atlas/#&lat=33.50475906922609&lng=104.2822265625&zoom=4
    中国省市县级地图绘制geojson和topojson的方法-适用于PowerBI等多种可视化工具作图 by btharp
    这里有geojson、svg和excel三个下载选项。其中excel选项下载的其实也是json格式,但不是geojson文件,没有地理数据。用python的dataframe读取可以直接导出清晰的excel格式。

Geojson、topojson格式互转

对于某些工具,有geojson或者svg就可以作图了(比如Power BI的Synoptic Panel需要用到svg格式),但是另一些工具需要topojson,比如Power BI的shape map(形状地图)。
geojson、topojson和shx之间互相转换的一个网站是:mapshaper
https://mapshaper.org/。输入其中一种格式的文件就可以转为另一种格式。甚至可以输入csv。

Geojson格式地图编辑

下一个问题来了,如果网上获取的geojson地图的数据并不如所愿,怎么办?比如目前网上流行的市级地图,直辖市和港澳台是不再分区的。这是符合民政部的行政区划规定,但是实操项目则往往把直辖市下属的各区跟省下属的各市并列起来。要修改这样的地图则可以使用这么一个网站:geojson.io
http://geojson.io
导入geojson文件,左侧会显示相应的地图,右侧会显示geojson代码。此时代码显示的缩进非常清晰,远比一般vs code、notepad++打开要直观得多。在左侧区域手动描线,右侧区域则自动填补代码。更重要的是,同一个界面可以导入多个geojson文件,比如依次导入三个省的地图,那么就可以同时显示这三个省在同一个文件上。再保存导出。值得一提的是,导出的GeoJSON和TopoJSON并不等价于前文所说的geojson和topojson。前文所说的仍然是json后缀,但这个网站导出的则是topojson后缀。再用mapshaper转一下格式即可。
中国省市县级地图绘制geojson和topojson的方法-适用于PowerBI等多种可视化工具作图 by btharp

添加名称属性

Power BI的Synoptic Panel(商城下载),需要读取svg格式的地图。计算列或者度量值与之关联时候借助的是svg里面每个部分的名称属性。要修改这个名称属性,除了可以用vs code打开手动修改代码之外,还可以使用Synoptic Panel公司提供的工具:
Synoptic Design。再右侧输入该区域的名称即可。
中国省市县级地图绘制geojson和topojson的方法-适用于PowerBI等多种可视化工具作图 by btharp