Python之获取中国各地区矢量地图数据(shp格式)

小伙伴们,大家好,这篇博客主要讲解下Python如何获取中国各地区矢量地图数据,为什么突然写这个呢?具体原因可以见我另一篇博客ArcGIS创建渔网并导出中心质点经纬度;好了,废话不多说,开始展开!

如果小伙伴们要做与地图相关的研究,比如说绘制专题地图、对某区域划分格网等等,必然会用到shp格式的矢量地图数据,这是必不可少的。那么如何获取矢量地图数据呢,在这里主要参考了B站上一位大佬的文章,具体链接见下,本文也是再其基础上加些自己的总结;

参考资料:全国shp文件自动生成(python)

这篇文章谈到了两种获取json数据的方式:手动和自动;关于自动获取,小伙伴们只需修改几处大佬的代码,直接运行即可,可能会出现geopandas包报错问题,下面我会讲到;关于手动获取的话(我比较习惯手动),我想在其基础上扩充下,具体内容如下;

打开下面的网址,它是一个地图选择器,在这里面我们可以获取到高德地图提供的json数据

地图选择器:http://datav.aliyun.com/tools/atlas/

假如我们以石家庄市为例,直接再搜索框输入石家庄市即可;

Tips:如果只是研究石家庄这一整个区域,可以选择前两个网址;如果想再ArcGIS中显示各区以及县的边界,那就选择后两个网址;打开网址后,将网址里的内容复制粘贴到文本文件,然后修改文本后缀名为.json即可;另外(***),这个地图选择器只能选择某一块区域,比如具体某一个市、某一个区、某一个县等,而如果你想研究的是石家庄市最繁华的四个区(新华、裕华、长安、桥西),那必须以石家庄市搜索,保存包含子区域的json数据,之后再去删掉json数据中的其他区县,只保留四个区的(根据文件中的邮政编码去查找并删除),小伙伴们自行尝试这个,如果还是不会,可以再评论区留言,我会详细再说一下怎么再json文件删除;

将数据保存到json文件后,然后用Pycharm创建项目,将json文件放到项目目录下,运行以下python代码(需要添加下json的文件名,倒数第三行),即可将json数据转换为shp格式的数据

import geopandas
import os

path = None # 定义存放路径

def generate_shape(city):
    file_name = os.path.join(path, city + '.json')
    shp_file_path = os.path.join(path, city + '.shp')
    try:
        data = geopandas.read_file(file_name)
        localPath = str(shp_file_path)
        data.to_file(localPath, driver='ESRI Shapefile', encoding='gbk')
        print(f"{city}shp文件生成成功")
        print(f"文件存储在:{os.path.join(path,city+'.shp')}")
    except Exception as e:
        print(e)

if __name__ == '__main__':
    city = '###' # json文件名
    path = 'E:/shp' # 存放路径
    generate_shape(city)

运行上述代码可能会出现两个问题:1. 使用pip安装geopandas包时会报错,无法安装成功,如果遇到这个问题的小伙伴,可以参考第一篇文章;2. 如果geopandas包成功安装后,运行显示geos_c.dll文件找不到,可以看下第二篇文章:

参考资料:第一篇:geopandas安装心得(win10); 第二篇:安装shapely报错,找不到geos_c.dll

好了,如果以上步骤都完成的话,运行代码就会生成相应的shp格式的矢量地图文件,如下图所示(警告问题我也不太会,无奈.jpg,不过不影响结果):

然后就可以将生成的shp矢量文件拖入到ArcGIS中,即可生成想要的地图,比如我获取的是石家庄市最繁华的四个区,导入进ArcGIS中地图如下图所示:

好了,到此Python获取矢量地图数据就结束了,这篇文章主要是为了后续Python创建渔网那篇文章做一些铺垫,如果全放到一篇博客中,篇幅过长会影响阅读,望大家体谅呀!如果有小伙伴对于其中的步骤有哪些疑问,可以再评论区留言,看到我会一一回复的;如果有写的不够完善、不够明白的地方,也欢迎大家随时提出宝贵意见,我会继续改善的!


                             来都来了,确定不留下点什么嘛,嘻嘻~

                                             

 

  • 21
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
矢量地图大全是一种包含地理信息的地图数据集合,它以矢量的形式表示地理要素和属性信息。而SHP格式shapefile格式,是一种广泛使用的矢量地图数据存储格式SHP格式由三个文件组成,分别是.shp、.shx和.dbf文件。其中.shp文件存储了地理要素的几何形状,比如点、线、面等,而.shx文件存储了.shp文件中几何形状的索引,用于提高数据的查询速度。.dbf文件则存储了与地理要素相关的属性信息,如名称、人口数量、土地利用等。这三个文件一起组成了完整的SHP格式地图数据矢量地图大全shp格式具有以下优点: 1. 精确性高:矢量地图以点、线、面等几何形状来表示地理要素,能够非常精确地展示地理现象的位置和形态。 2. 数据丰富:SHP格式支持存储丰富的地理属性信息,可包含各种有关地理要素的数据,且能够方便地进行数据查询和分析。 3. 数据交换和共享方便:SHP格式是一种开放的地图数据格式,广泛应用于各种GIS软件和工具中,支持跨平台的数据交换和共享。 4. 数据可视化效果好:由于矢量地图以图形的方式表示地理要素,因此在可视化效果上更加美观,用户能够更直观地理解地理信息。 总之,矢量地图大全shp格式是一种常用的地图数据集合格式,具有精确性高、数据丰富、方便交换和共享等优点,广泛应用于地理信息系统领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数分小白龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值