版本日志
2.1.0
发布日以 PyPI 为准。
版本与数据依赖:主包版本提升到
2.1.0,并将官方数据包依赖提升到cnmaps-data>=1.1.2。行政区记录增强:
get_adm_maps返回的MapRecord现在显式提供longitude/latitude中心点坐标字段,便于直接做标注、打点和文本放置;相关文档、示例和技能说明同步补全。多名称批量筛选:
get_adm_maps/get_adm_names支持在同一level下使用province/city/district/country的多值筛选,一次查询可返回多个精确命名对象,但仍不支持在单次调用中混合国/省/市/区县层级。命令行工具扩展:新增
cnmaps export子命令,可直接按照接近get_adm_maps的筛选规则导出 GeoJSON / Shapefile;文档新增独立“命令行工具”章节,并补充 CLI 相关测试。外部边界规范与校验:新增
validate_boundary_file(...)、read_boundary_file(...)和cnmaps check-boundary,为自定义 GeoJSON / Shapefile 接入MapPolygon工作流提供统一的 boundary spec、校验入口与读取入口。绘图裁剪能力扩展:新增
clip_streamplot_by_map(...)与clip_imshow_by_map(...),分别支持对streamplot流线图和imshow图像对象(包括 hillshade)按行政区边界裁剪。EPS / PS 导出经验沉淀:新增“常见问题”文档,记录复杂边界裁剪后导出
EPS/PS可能失效的场景,并补充simplify=True的 workaround 与相关技能说明。AI Skill 体系上线:主包内置 bundled skill 结构,支持通过
cnmaps install-skill安装到 Codex、Cursor、Claude Code 等助手环境;同时补充共享 references / examples,使 AI 更稳定地理解cnmaps的查询、绘图、裁剪、遮罩、导出与能力边界。依赖清理:移除了仅用于坐标转换加速的
numba运行时依赖,并清理了未实际使用的geojson依赖。文档与示例重构:整体刷新 README 与 Sphinx 文档,新增 CLI、FAQ、数据来源、国家中心点、世界地图与能力边界等内容,补充大量静态示例图和可运行示例脚本,并统一本地文档构建脚本。
2.0.1
发布日以 PyPI 为准。
数据依赖约束:将官方数据包依赖明确收紧为
cnmaps-data>=1.1.1,确保国家级边界、iso3查询和最新争议地区处理规则能够稳定生效。性能测试:重构 benchmark 项目与性能页面统计口径,避免将不同 workload 的历史曲线混在同一条线上。
性能优化:对
maskout/make_mask_array的核心路径进行了针对性优化,改善重复网格计算场景下的性能表现。Python / CI:项目 Python 版本范围更新为
>=3.9,<3.13,主 CI 覆盖 Python 3.9–3.12 与 macOS / Ubuntu / Windows;绘图测试统一使用MPLBACKEND=Agg,依赖安装步骤增加自动重试以减少网络抖动导致的偶发失败。测试与文档:补齐国家级查询、文档示例和性能测试用例的查询口径,使其与
cnmaps-data拆分后的语义保持一致。
2.0.0
发布日以 PyPI 为准。
数据包拆分:
cnmaps自 2.0 起不再内置官方行政区、地理边界与样例数据,官方数据已迁移到独立包cnmaps-data;安装cnmaps时会默认安装cnmaps-data。数据提供者机制:运行时默认通过已安装的
cnmaps-data或兼容cnmaps.data_providersentry point 协议的第三方数据包提供数据,不再回退到仓库内置数据目录。Shapely 2.0:本版本最重要的变更是将依赖与实现全面对齐 Shapely 2.x(
pyproject.toml中为shapely>=2.0.0),在保留MapPolygon等既有 API 的前提下,消除此前与 Shapely 2.0 迁移相关的兼容性问题;该项变更对应 Issue 106。Cartopy 兼容:绘图裁剪逻辑同时兼容新版
cartopy.mpl.path.shapely_to_path与旧版cartopy.mpl.patch.geos_to_path,并适配新的GeoContourSet接口。性能:对样例数据加载、GeoJSON 读取、行政区查询与
MapPolygon内部重复多边形清理进行了缓存和热点优化,全量测试耗时显著下降。文档:安装说明、贡献者指南、API 参考等与当前工程及 CI 同步(Python/NumPy/Shapely 约束、GitHub Actions、函数签名与返回行为等)。
1.1.7
发布时间: 2023-08-10
Python 解释器要求升级到 3.9。
Cartopy 版本要求升级到 0.22.0。
修复了由于
shapely>=2.0导致的错误。修复了 Numba、Geopandas 的警告提示问题。
pip 安装时不再需要手动安装依赖。
1.0.1
发布时间: 2022-04-05
修复了安装依赖缺少 geopandas 的问题。
1.0.0
发布时间: 2022-04-05
增加了
cnmaps.maps.get_adm_maps函数以支持对市、区县等行政边界的查询,高德的行政边界数据上已下探到区县级别。支持多条件筛选和一次性返回多个对象功能。
集成了geopandas引擎。
增加了
cnmaps.maps.get_adm_names函数以支持对支持的行政区关键字的查询。增加了
cnmaps.drawing.draw_maps函数以方便一次性绘制多个地图边界。增加了
cnmaps.regions.region_polygons可以直接获取例如华北地区、华东地区、京津冀、江浙沪等边界对象。删除了
cnmaps.get_map函数,其行政边界查询的功能转移至get_adm_maps,但用法上会有一些变化。暂时删除了对青藏高原边界的支持。
0.2.1
发布时间: 2022-03-02
修复了Windows系统中GBK编码无法加载数据的问题。
0.2.0
发布时间: 2022-02-16
增加了对pcolormesh图的裁剪支持。
修复了边界错误的问题。
0.1.11
发布时间: 2022-02-14
尝试修复安装时出现gbk编码异常的问题。
0.1.10
发布时间: 2022-02-13
增加功能: cnmaps.get_map函数: 获取地图。
增加功能: cnmaps.draw_map函数: 绘制地图。
增加功能: cnmaps.MapPolygon类: 地图对象, 包括: 加号(合并)、减号(剪切)、逻辑与(交集)运算符的支持,get_extent方法。
增加功能: cnmaps.clip_contours_by_map函数: 基于MapPolygon类对等值线图做裁减。
增加功能: cnmaps.sample.load_dem函数: 加载dem样例数据。
增加功能: cnmaps.clip_clabels_by_map函数: 基于MapPolygon类对标签做裁减。
对cartopy.crs各类投影的支持。
对全国中国国界、全国各省(特区/直辖市)地图的预置, 且处理了已知的拓扑错误。
集成 Travis CI 自动化测试(后续版本已迁移至 GitHub Actions)。