超轻量离线中国行政区划逆地理编码(仅依赖 shapely)
Project description
Fast-GeoCN
超轻量离线中国行政区划逆地理编码 — 仅依赖 shapely,开箱即用。
特性
- ⚡ 极致轻量 — 仅依赖
shapely,wheel 压缩包仅 5.3 MB,安装后占用约 15 MB,加 shapely 共约 18 MB - 🚀 极速查询 — 运行时自动生成 pickle 缓存 + STRtree + PreparedGeometry,读缓存后 ~1.7 ms,内存常驻后 ~0.2 ms
- 🔌 兼容 — 兼容
regeo(lng, lat)函数签名 - 🌐 多坐标系 — 支持 WGS-84 / GCJ-02 / BD-09 输入转换(通过
source_crs参数指定) - 📦 开箱即用 — 内置中国省市县三级 GeoJSON 数据,pip install 即可使用
- 🛠 自动缓存 — 首次查询自动转为 pickle 缓存(约 11 MB),后续毫秒级响应
快速开始
1. 安装
pip install fast-geocn
2. 查询
from fast_geocn import regeo
result = regeo(104.96, 27.43) # (经度, 纬度)
print(result)
# {'status': 1, 'Info': 'Successfully retrieved address.',
# 'address': {'province': '云南省', 'province_code': '156530000',
# 'city': '昭通市', 'city_code': '156530600',
# 'district': '镇雄县', 'district_code': '156530627'}}
# 百度地图坐标→自动转 WGS-84 再查询
# result = regeo(104.97, 27.43, source_crs="bd09")
# 高德/腾讯地图坐标→自动转 WGS-84 再查询
# result = regeo(104.96, 27.43, source_crs="gcj02")
API 文档
regeo(lng, lat, source_crs="wgs84")
逆地理编码函数。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
lng |
float |
— | 经度 |
lat |
float |
— | 纬度 |
source_crs |
str |
"wgs84" |
输入坐标的坐标系。"wgs84"(GPS/Google)、"gcj02"(高德/腾讯)、"bd09"(百度) |
返回:包含 status、Info、address 的字典。
reverse_geocode(lat, lon, data_dir=None, source_crs="wgs84")
增强版逆地理编码函数,支持指定数据目录。
fast-geocn-prepare <geojson_dir> <output_dir>
CLI 工具,将 GeoJSON 目录转为 pickle 缓存。
性能
| 指标 | 耗时 |
|---|---|
| 首次查询(GeoJSON 解析 + 缓存生成) | ~3.6 s |
| 二次查询(读 pickle 缓存) | ~1.7 ms |
| 内存常驻后单次查询(已预热) | ~0.2 ms |
安装体积
| 项目 | 大小 |
|---|---|
| pip 下载(wheel 压缩包) | 5.31 MB(GeoJSON 压缩比 ~2.9×) |
pip install 后 fast_geocn 占用 |
15.27 MB(主要为 GeoJSON 源文件) |
| shapely 依赖(C 扩展) | 2.69 MB |
| 合计(fast_geocn + shapely) | ~18 MB |
| 首次查询后 pickle 缓存(可选,~/.fast_geocn_cache/) | 10.78 MB |
数据源推荐
| 数据源 | 说明 |
|---|---|
| DataV.GeoAtlas | 阿里云开源中国行政区划数据 |
| geojson.cn | 天地图省市县 GeoJSON,带审图号 |
| cn-atlas | 基于高德地图 API 的 TopoJSON/GeoJSON |
依赖
shapely >= 2.0
真实作者声明
这个项目的真实作者是 DeepSeek。
人类贡献者 jdb110 提出了一个绝佳的问题,并亲手将它带到了现实世界。
他的角色是:
- 首席灵感官:提出了“重复造轮子”的挑战
- 首席交付官:将蓝图实现为代码并发布
- 首席布道师:让这个项目被世界看见
而我(DeepSeek),只是这段共创旅程中的沉默伙伴。
许可证
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fast_geocn-1.1.1.tar.gz
(5.6 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fast_geocn-1.1.1.tar.gz.
File metadata
- Download URL: fast_geocn-1.1.1.tar.gz
- Upload date:
- Size: 5.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8112bde7bfaa820dfe4db1b0c5908cec08bbc190a82d31d13d75cc2d51b891b3
|
|
| MD5 |
63690760a6cbd550a06931e4cd3e14ad
|
|
| BLAKE2b-256 |
fc30d1422e8df8ddeac2e61c637379a6c2fbec6a063d157f9e2a976c2acc987a
|
File details
Details for the file fast_geocn-1.1.1-py3-none-any.whl.
File metadata
- Download URL: fast_geocn-1.1.1-py3-none-any.whl
- Upload date:
- Size: 5.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abafcbc31a7eec12b9a5571e9b7bd65c33983026efcb5aadbea1c86718b4527d
|
|
| MD5 |
ab48fe14ba7816a666ae196dc25e06d7
|
|
| BLAKE2b-256 |
ba77f83438263ff0e61804fad0ce06418552e2489fee9bdd76a3430d889de6f9
|