# cnmaps **Repository Path**: hldqxt/cnmaps ## Basic Information - **Project Name**: cnmaps - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: 1.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-31 - **Last Updated**: 2025-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

cnmaps

Anaconda Install with conda PyPI version Downloads Documentation Status tokei contributions welcome

cnmaps是一个可以让中国地图画起来更丝滑的地图类python扩展包

## 安装 ### 使用conda安装 你可以使用conda进行安装cnmaps:`$ conda install -c conda-forge -y cnmaps` ### 使用pip安装 cnmaps依赖于`cartopy>=0.19.0`,因此如果使用pip安装,在安装cnmaps之前请确保cartopy已安装,[cartopy的安装方法](https://scitools.org.uk/cartopy/docs/latest/installing.html)。 在完成cartopy的安装以后,你可以使用pip来安装cnmaps:`$ pip install -U cnmaps` ## 快速开始 ### 绘制国界 用最简单直接的方式,来绘制你的第一张中国地图。 ```python import cartopy.crs as ccrs import matplotlib.pyplot as plt from cnmaps import get_adm_maps, draw_maps fig = plt.figure(figsize=(10,10)) ax = fig.add_subplot(111, projection=ccrs.PlateCarree()) draw_maps(get_adm_maps(level='国')) plt.show() ``` ![country-level](static/images/country-level.png) ### 绘制省界 cnmaps还可以绘制各省(特区/直辖市)的地图 ```python import cartopy.crs as ccrs import matplotlib.pyplot as plt from cnmaps import get_adm_maps, draw_maps fig = plt.figure(figsize=(10,10)) ax = fig.add_subplot(111, projection=ccrs.PlateCarree()) draw_maps(get_adm_maps(level='省'), linewidth=0.8, color='r') plt.show() ``` ![province-level](static/images/province-level.png) ### 绘制市界 cnmaps可以绘制市级的行政区地图。 ```python import cartopy.crs as ccrs import matplotlib.pyplot as plt from cnmaps import get_adm_maps, draw_maps fig = plt.figure(figsize=(15,15)) ax = fig.add_subplot(111, projection=ccrs.PlateCarree()) draw_maps(get_adm_maps(level='市'), linewidth=0.5, color='g') plt.show() ``` ![city-level](static/images/city-level.png) ### 绘制区县界 cnmaps可以绘制区县级的行政区地图。 ```python import cartopy.crs as ccrs import matplotlib.pyplot as plt from cnmaps import get_adm_maps, draw_maps fig = plt.figure(figsize=(20,20)) ax = fig.add_subplot(111, projection=ccrs.PlateCarree()) draw_maps(get_adm_maps(level='区县'), linewidth=0.8, color='r') plt.show() ``` ![district-level](static/images/district-level.png) ### Logo 本项目的Logo地图是如何绘制的?请执行下面的代码。 ```python import cartopy.crs as ccrs import matplotlib.pyplot as plt from cnmaps import get_adm_maps fig = plt.figure(figsize=(5,5)) proj = ccrs.Orthographic(central_longitude=100.0, central_latitude=30) ax = fig.add_subplot(111, projection=proj) ax.stock_img() china, sourth_sea = get_adm_maps(level='国', only_polygon=True) ax.set_global() ax.add_geometries(china, crs=ccrs.PlateCarree(), edgecolor='r', facecolor='r') ax.add_geometries(sourth_sea, crs=ccrs.PlateCarree(), edgecolor='r') ax.outline_patch.set_edgecolor('white') plt.savefig('../static/images/logo-base.png', bbox_inches='tight') ``` ![logo-base](static/images/logo-base.png) ## 使用指南 针对本项目更多的使用方法,我们还有一份更详细的文档:[cnmaps使用指南](https://cnmaps-doc.readthedocs.io/zh_CN/latest/index.html) ## 引用 本项目适用的地图边界的数据源包括: 1. GaryBikini/ChinaAdminDivisonSHP: v2.0, 2021, DOI: 10.5281/zenodo.4167299 海拔高度地形数据来自ASTER数字高程模型,并对原始数据进行了稀释。