高效获得准确的中国地图数据并进行可视化

发布时间:2025-12-09 16:52:52 浏览次数:4

[2022-05-18日更新] getchinamap包更新

  • 不知道是不是gitee疯了,把我在上面托管的一个数据给禁止了,导致我这个包用不了了。这里做一次更新。
  • 目前建议所有人升级getchinamap包到1.0.6版本。之前的版本都用不了了。
  • 本次包主要修改了下载器初始化的步骤,具体查看下方的步骤。
  • 介绍

    因为获得中国地图数据难的问题,解决中国地图数据不准确、不全面问题。我发布了一个python,让你使用中国地图更加方便。

    效果图

    from getchinamap.getchinamap import DownloadChmapchinamap_engine = DownloadChmap()data = chinamap_engine.download_country(target='县区')nine_segments = chinamap_engine.download_nine_segments()import matplotlib.pyplot as pltfig, ax = plt.subplots(figsize=(10,10), dpi=300)data.boundary.plot(ax=ax)nine_segments.boundary.plot(ax=ax)fig.savefig('县区.png')

    获得中国地图数据

    目的

    本包主要是为了解决获得中国地图数据难的问题,这里提供一个python的解决方案。让大家用中国地图更加宽心、方便。

    本包特点

  • 简单;
  • 高效;
  • 准确(相对网络上的数据,中国地图数据更加准确);
  • 完整(数据完整,包括中国各个区域;并且可以让用户下钻到县区级别)
  • 数据来源

    本包查询到的数据全部来源于 阿里云的DataV http://datav.aliyun.com/portal/school/atlas/area_selector

    因此数据基本上和高德地图保持一致;

    使用声明

  • 请合理使用地图数据;数据内容和本人无关;数据具体用途也和本人无关;
  • 使用方式

    先安装本包

    pip install getchinamap==1.0.6

    下载依赖数据[在1.0.6版本修改了]

  • 本仓库之前依靠的是阿里云发布的AMap_adcode_citycode_20210406.csv文件。这个文件被我经过修改,现在这个文件在仓库https://github.com/yuanzhoulvpi2017/chinamap的dataset文件夹下。
  • 需要把上面文件AMap_adcode_citycode_20210406.csv下载到本地。
  • 导入包并且初始化包

    from getchinamap.getchinamap import DownloadChmap# 把上面的文件路径放到这里chinamap_engine = DownloadChmap(adcode_file="../datasets/AMap_adcode_citycode_20210406.csv")

    获得县区级数据

    目前县区级别的数据,只能获得县区的边界,不能获得县区下的街道、村内容。

    只要使用chinamap_engine.download_district即可,里面的参数需要传递县区名称

    chinamap_engine.download_district(district_name='寿县')chinamap_engine.download_district(district_name='余杭区')

    获得市级数据

    目前市级数据,只能获得市级的边界、县区,不能获得街道、村内容。

    只要使用chinamap_engine.download_city函数。
    需要传递两个参数:

  • city_name代表城市名称,比如杭州市,合肥市;
  • target代表下钻维度:边界, 县区。
  • chinamap_engine.download_city(city_name='杭州市',target='边界')chinamap_engine.download_city(city_name='杭州市',target='县区')chinamap_engine.download_city(city_name='合肥市',target='边界')

    获得省级数据

    目前省级数据,只能获得省级的边界、市、县区,不能获得街道、村内容。
    只要使用chinamap_engine.download_province函数。
    需要传递两个参数:

  • province_name代表省的名字,比如浙江省,安徽省等;
  • target代表下钻维度:边界,市,县区。
  • chinamap_engine.download_province(province_name='浙江省', target='边界')chinamap_engine.download_province(province_name='浙江省', target='市')chinamap_engine.download_province(province_name='浙江省', target='县区')chinamap_engine.download_province(province_name='安徽省', target='边界')chinamap_engine.download_province(province_name='安徽省', target='市')

    获得国家级数据

    目前国家级数据,只能获得国家级的边界、省、市、县区,不能获得街道、村内容。(默认国家为中国)。
    只要使用chinamap_engine.download_country函数。
    需要传递一个参数:

  • target代表下钻维度:边界,省,市,县区。
  • chinamap_engine.download_country(target='边界')chinamap_engine.download_country(target='省')chinamap_engine.download_country(target='市')chinamap_engine.download_country(target='县区') # 建议少用

    获得南海九段线

    如果需要添加九段线,可以使用这个函数,获得九段线数据即可。

    chinamap_engine.download_nine_segments()
    需要做网站?需要网络推广?欢迎咨询客户经理 13272073477