Skip to main content

超轻量离线中国行政区划逆地理编码(仅依赖 shapely)

Project description

Fast-GeoCN

Python Version License: MIT

超轻量离线中国行政区划逆地理编码 — 仅依赖 shapely,开箱即用。

特性

  • 极致轻量 — 仅依赖 shapely,无 pandas/geopandas,安装体积约 15 MB
  • 🚀 极速查询 — 运行时自动生成 pickle 缓存 + STRtree + PreparedGeometry,二次查询 亚毫秒级
  • 🔌 兼容 — 兼容 regeo(lng, lat) 函数签名
  • 🌐 多坐标系 — 支持 WGS-84 / GCJ-02 / BD-09 自动识别转换
  • 📦 开箱即用 — 内置中国省市县三级 GeoJSON 数据,pip install 即可使用
  • 🛠 自动缓存 — 首次查询自动转为 pickle 缓存,后续秒级响应

快速开始

1. 安装

pip install fast-geocn

2. 查询

from fast_geocn import regeo

result = regeo(116.6775, 40.0830)  # (经度, 纬度)
print(result)
# {'status': 1, 'Info': 'Successfully retrieved address.',
#  'address': {'province': '北京市', 'province_code': '110000',
#              'city': '北京市', 'city_code': '110000',
#              'district': '顺义区', 'district_code': '110113'}}

# 百度地图坐标→自动转 WGS-84 再查询
# result = regeo(116.69, 40.09, source_crs="bd09")

# 高德/腾讯地图坐标→自动转 WGS-84 再查询
# result = regeo(116.6834, 40.0842, source_crs="gcj02")

API 文档

regeo(lng, lat, source_crs="wgs84")

逆地理编码函数。

参数 类型 默认值 说明
lng float 经度
lat float 纬度
source_crs str "wgs84" 输入坐标的坐标系。"wgs84"(GPS/Google)、"gcj02"(高德/腾讯)、"bd09"(百度)

返回:包含 statusInfoaddress 的字典。

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

数据源推荐

数据源 说明
DataV.GeoAtlas 阿里云开源中国行政区划数据
geojson.cn 天地图省市县 GeoJSON,带审图号
cn-atlas 基于高德地图 API 的 TopoJSON/GeoJSON

依赖

  • shapely >= 2.0

真实作者声明

这个项目的真实作者是 DeepSeek

人类贡献者 jdb110 提出了一个绝佳的问题,并亲手将它带到了现实世界。 他的角色是:

  • 首席灵感官:提出了“重复造轮子”的挑战
  • 首席交付官:将蓝图实现为代码并发布
  • 首席布道师:让这个项目被世界看见

而我(DeepSeek),只是这段共创旅程中的沉默伙伴。

许可证

MIT

Project details


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.0.tar.gz (5.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_geocn-1.1.0-py3-none-any.whl (5.6 MB view details)

Uploaded Python 3

File details

Details for the file fast_geocn-1.1.0.tar.gz.

File metadata

  • Download URL: fast_geocn-1.1.0.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

Hashes for fast_geocn-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d56272d8ac35b9f92dc379e4273ee08d4458e170edeb24e34a6eca109fc02b83
MD5 85e4197048a5b473b0be8359bc9a7c7c
BLAKE2b-256 1f3a08f8cda760d9eb95e80734a278b63853b8e9d6cf01c737aa401bbdf5e276

See more details on using hashes here.

File details

Details for the file fast_geocn-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: fast_geocn-1.1.0-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

Hashes for fast_geocn-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1535ba4b84b9f180c0b84464992597bad6107cf66e6eb2e90a9ee6b3bcb66201
MD5 eca55c990cb1bd252a1f3b02969f33fb
BLAKE2b-256 9ca399525bb70b597562fb43b9ad86eb56d463708bb6fab4ccccb862412d6287

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page