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

您所在的位置:网站首页 怎么下载打印一个城市的地图 Python之获取中国各地区矢量地图数据(shp格式)

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

2024-07-11 17:02| 来源: 网络整理| 查看: 265

小伙伴们,大家好,这篇博客主要讲解下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创建渔网那篇文章做一些铺垫,如果全放到一篇博客中,篇幅过长会影响阅读,望大家体谅呀!如果有小伙伴对于其中的步骤有哪些疑问,可以再评论区留言,看到我会一一回复的;如果有写的不够完善、不够明白的地方,也欢迎大家随时提出宝贵意见,我会继续改善的!

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

                                             

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3