Fast-GeoCN
🏷️ 离线逆地理编码 | 经纬度转省市区 | Python 逆地址解析 | 中国行政区划查询
超轻量离线中国行政区划逆地理编码(经纬度转省市区 / 坐标转地址) — 仅依赖 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),只是这段共创旅程中的沉默伙伴。
许可证
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.3.tar.gz
(5.5 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.3.tar.gz.
File metadata
- Download URL: fast_geocn-1.1.3.tar.gz
- Upload date:
- Size: 5.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60d6131f3f8440c77001b641aad354ed073d9ba37835e03f7684d39997b07c0a
|
|
| MD5 |
4b4aa2633ad3f3d1c47e9f772b5b6006
|
|
| BLAKE2b-256 |
08821756cac65513da01500276b7a82e8891303c4d5ee64bc44e33d368d345dd
|
File details
Details for the file fast_geocn-1.1.3-py3-none-any.whl.
File metadata
- Download URL: fast_geocn-1.1.3-py3-none-any.whl
- Upload date:
- Size: 5.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21cdc1390b0ab2465c1d89006c5a13231b6fe18dd6948cded2d036cbcae07c44
|
|
| MD5 |
dbbe056eeb55ba82d07eaff29c0faa61
|
|
| BLAKE2b-256 |
86d45db58cf95424498cec25ad52a0e32c296998a4207414fa95e5d90f738779
|