当前位置:首页 > 技术分享

GEO 定位,根据地理坐标获取所在城市信息,城市逆地址解析 根据城市名称获取中心坐标 开源免费

admin8个月前 (03-10)技术分享679

当前三大地图太贵,有些时候不需要太精准的信息,可以考虑使用本接口,实现根据经纬度坐标获取所在城市信息,根据城市名称获取城市中心点坐标,多种坐标系转换

GeoLocator 是一个基于经纬度坐标获取城市信息的 PHP 库,支持多种坐标系转换,提供高性能的地理定位功能。

a.JPEG

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

qrcode.jpg

仓库地址

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 数据来源于公开的地理信息数据,包含了中国的省份、城市和区县边界信息。

数据更新:https://geojson.cn/data/atlas/china

扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/739.html

分享给朋友:

“GEO 定位,根据地理坐标获取所在城市信息,城市逆地址解析 根据城市名称获取中心坐标 开源免费” 的相关文章

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升级为企业版等。升级密钥不能用于激活系统,激活需要KMS或者数字权利,由于涉及到版权问题,在此不宜分享,请大家自行查找激活相关的内容。准…

遭遇国外ip抓取或攻击怎么办一招解决禁止海外IP访问

遭遇国外ip抓取或攻击怎么办一招解决禁止海外IP访问

究发现很多网站被攻击都是来自海外的肉鸡,所以禁掉海外IP访问网站也是不错的防护手段,而且国内网站几乎很少有国外用户访问,称之为大局域网也不为过。今天主机吧来教大家如何利用域名解析禁止掉海外IP访问网站。绝大多数域名解析服务商都是提供电信联通…

apicloud影视APP源码 无需后台

apicloud影视APP源码 无需后台

介绍集合vip影视接口到一个android app中 方便观看各平台影视资源及直播开源地址:https://gitee.com/web/vip_yingshi软件架构使用apicloud搭建影视APP源码,无后台,调用接口同步api解析网址…

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软博客宣称,Windows 11 上 安卓子系统运行 Android  应用程序的第一个预览版现已提供给美国 Beta 频道的 Windows 内部人员。Windows 11 安卓子系统支…

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud是日本老牌网盘,速度挺快的。注册之后输入邀请码:“SX3BY”还可获得额外的5 GB.(如果你不输入邀请码,只能有10G)。经过我自己的尝试,我发现windows自带的资源管理器同步并不好,推荐Teracloud推荐的一些…

Windows下SVN自动更新

Windows下SVN自动更新

1、创建post-commit.bat文件,放到C:\Repositories\pms\hooks文件夹下(注意不要先创建txt文件然后改后缀,pms为代码目录名),内容如下:@echo off "C:\Tortois…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。