# 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是一个可以让中国地图画起来更丝滑的地图类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()
```

### 绘制省界
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()
```

### 绘制市界
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()
```

### 绘制区县界
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()
```

### 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')
```

## 使用指南
针对本项目更多的使用方法,我们还有一份更详细的文档:[cnmaps使用指南](https://cnmaps-doc.readthedocs.io/zh_CN/latest/index.html)
## 引用
本项目适用的地图边界的数据源包括:
1. GaryBikini/ChinaAdminDivisonSHP: v2.0, 2021, DOI: 10.5281/zenodo.4167299
海拔高度地形数据来自ASTER数字高程模型,并对原始数据进行了稀释。