纯手工生成 乡镇行政区划(街道行政区划) geojson 用于百度echart绘图 不断更新...

0.前提说明介绍

目前网上的地图数据只支持到区/县级。如果想要显示乡镇/街道区划的数据,就只能八仙过海,各想办法了。由于时间紧急,本人只想到一个笨办法,现公布于众。

1.所需工具及网站

  1. bigemap软件(或者其他类似软件),用于导出乡镇区划的shp文件
  2. shp文件转geojson文件工具:转换工具
  3. 合并geojson文件网站:geojson.io

2.操作步骤

下面就以制作北京的西城区的街道数据展示详细的操作流程。

    1.导出乡镇区划的shp文件

         这一步使用bigemap工具,循环导出街道数据。具体操作如下图:

1.导出【西长安街街道】数据到一个固定的目录。

2.继续导出接下来的街道数据到同一个目录。

    2.shp文件转换成geojson文件

    这一步使用shp文件转geojson文件工具,这个工具的Demo网址: mapshaper plus

    下面开始继续操作:

1.将第一步导出的shp文件,一起导入到工具中。如下图:

注意:下一步如果导出出错的话,则选择文件的时候,不要全选择,只选择【.shp】文件。

2.转换成geojson文件

 到此,会导出一个压缩包【output.zip】。将其解压到一个单独的文件夹内部。

     3.合并geojson文件

这一步使用网址: geojson.io。打开网址,导入上一步导出的geojson文件。导入的时候,只能一个一个地选择导入了。

最终所有的导入后,结果如下图

接下来就可以导出为一个合并后的geojson文件了:

 最终导出为一个geojson文件【西城区.geojson】,到此已经完成了50%的工作量了。继续下面的操作。

     4.修改合并后的geojson文件

由于bigemap导出的街道文件有问题,还需要继续加工修改才可以作为echarts可以使用的最终geojson文件。下面的操作比较繁琐,匀速呼吸,仔细操作。

1.添加街道的名称

由于属性【properties】没有内容,所以我们要把街道的名字添加进去。 添加街道名称的步骤需要用到【bigemap】和导出的各个街道的geojson文件。

 按照上诉步骤,修改完所有的15个街道的名称。

2.修改内容格式

由于bigemap导出的内容格式问题,我们需要删除一层结构。修改步骤如下。

1.搜索【{"type":"GeometryCollection","geometries":[{】并全部替换为【{】

2.由于删除了【[{】,需要把配对的也删除掉,所以搜索【]}]}}】并替换为【]}}】

3.搜索【{"geometries":[{ 】并全部替换为【{

4.搜索【}],"type":"GeometryCollection"}】并替换为【}

1.搜索【{"type":"GeometryCollection","geometries":[{】并全部替换为【{】

2.由于删除了【[{】,需要把配对的也删除掉,所以搜索【]}]}}】并替换为【]}}】

至此,所有工作结束,最终的geojson文件也完成了。 

3.优点和局限性

  1. 优点:可以按照这个方法生成国外地图的数据(我就用这个方法生成了一个国外地图数据,国外地图只需要修改第一步就可以了。)
  2. 缺点:乡镇区划的数据是根据bigemap软件中导出的,而我发现bigemap的行政区划数据比较旧。现在很多乡镇已经合并了。
  3. 缺点:由于手工生成比较繁琐和需要仔细耐心,所以,不适合大批量的数据需求。

猜你喜欢

转载自blog.csdn.net/qian913761489/article/details/114123052