GEO 定位,根据地理坐标获取所在城市信息,城市逆地址解析 根据城市名称获取中心坐标 开源免费
当前地图太贵,有些时候比较不需要太精准的时候可以考虑使用本接口。
GeoLocator 是一个基于经纬度坐标获取城市信息的 PHP 库,支持多种坐标系转换,提供高性能的地理定位功能。

演示地址:https://tool.bitefu.net/geo/ apikey:关注公众号回复【坐标】获取

仓库地址
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 文件:
php merge_geojson.php
3. 基本使用
// 引入类文件
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 文档请参考 https://gitee.com/web/city_geo/blob/master/API_DOCS.md 文件。
支持的坐标系
gcj02: 高德/腾讯坐标系
wgs84: GPS 坐标系
gps: 等同于 WGS84
bd09ll: 百度坐标系
数据来源
GeoJSON 数据来源于公开的地理信息数据,包含了中国的省份、城市和区县边界信息。


