# city_geo **Repository Path**: web/city_geo ## Basic Information - **Project Name**: city_geo - **Description**: 地理坐标获取所在城市信息,城市逆地址解析 根据城市名称获取中心坐标 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-10 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GeoLocator ## 项目简介 GeoLocator 是一个基于经纬度坐标获取城市信息的 PHP 库,支持多种坐标系转换,提供高性能的地理定位功能。 演示地址:[https://tool.bitefu.net/geo/](https://tool.bitefu.net/geo/) apikey:关注公众号回复【坐标】获取 ![关注公众号回复:坐标](https://gitee.com/web/holidays_vip_api/raw/master/images/qrcode.jpg "关注公众号回复:坐标") ## 仓库地址 [https://gitee.com/web/city_geo](https://gitee.com/web/city_geo) ## 主要功能 - 根据经纬度坐标获取所在城市信息 - 根据城市名称获取城市中心点坐标 - 支持多种坐标系转换(GCJ02、WGS84、BD09LL) - 高性能设计,使用单文件 JSON 数据 - 提供 RESTful API 接口 ## 目录结构 ``` city_geo/ ├── data/ │ └── geojson/ # 原始 GeoJSON 数据文件 ├── GeoLocator.php # 主类文件(单文件 JSON 版本) ├── GeoLocatorJson.php # 旧版本(多文件 JSON 版本) ├── index.php # API 接口入口 ├── geo.json # 合并后的压缩 JSON 数据 ├── merge_geojson.php # JSON 文件合并脚本 ├── benchmark.php # 性能对比脚本 ├── demo.php # 使用示例 ├── API_DOCS.md # API 文档 ├── README.md # 中文项目说明 └── README_en.md # 英文项目说明 ``` ## 安装使用 ### 1. 环境要求 - PHP 5.6 及以上版本 - 支持 gzip 扩展(用于读取压缩的 JSON 文件) ### 2. 数据准备 运行 JSON 文件合并脚本,生成 `geo.json` 文件: ```bash php merge_geojson.php ``` ### 3. 基本使用 ```php // 引入类文件 require_once 'GeoLocator.php'; // 创建实例 $geoLocator = new GeoLocator(); // 根据坐标获取城市 $city = $geoLocator->getCityByCoordinates(31.310623, 120.592528); echo "城市: " . $city['name'] . " (" . $city['code'] . ")\n"; // 根据城市名称获取中心点坐标 $center = $geoLocator->getCityCenterByCityName("北京市"); echo "中心点坐标: " . $center[0] . ", " . $center[1] . "\n"; ``` ## API 接口 GeoLocator 提供了 RESTful API 接口,支持通过 HTTP 请求获取地理定位服务。 ### 接口地址 ``` http://your-server/index.php ``` ### 认证方式 所有接口都需要提供有效的 API Key,可以通过以下方式传递: - GET 参数: `?apikey=test_key_123` - POST 参数: `apikey=test_key_123` - HTTP 头: `API-Key: test_key_123` ### 可用接口 1. **根据坐标获取城市** - `action=getCityByCoordinates` - 参数: `latitude`, `longitude`, `coordSystem` 2. **根据城市名称获取中心点坐标** - `action=getCityCenterByCityName` - 参数: `cityName`, `coordSystem` 3. **坐标系转换** - `action=transformCoord` - 参数: `longitude`, `latitude`, `fromCoord`, `toCoord` 4. **获取 API 文档** - `action=docs` 详细的 API 文档请参考 `API_DOCS.md` 文件。 ## 性能对比 GeoLocator 提供了性能对比脚本 `benchmark.php`,用于对比单文件 JSON 版本和多文件 JSON 版本的性能差异。 运行对比脚本: ```bash php benchmark.php ``` ## 支持的坐标系 - **gcj02**: 高德/腾讯坐标系 - **wgs84**: GPS 坐标系 - **gps**: 等同于 WGS84 - **bd09ll**: 百度坐标系 ## 数据来源 GeoJSON 数据来源于公开的地理信息数据,包含了中国的省份、城市和区县边界信息。 ## 参考项目 - [zzgeoapi](https://gitee.com/zz2022com/zzgeoapi) - 基于 Python 和 PostgreSQL GIS 的地理坐标解析 API ## 许可证 本项目采用 MIT 许可证。 ## 贡献 欢迎提交 issue 和 pull request 来改进这个项目。 ## 联系方式 如有问题或建议,请通过 Gitee Issues 联系我们。