You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定地理范围实现周边人员检索?

查找指定范围内周边人员的实现方案

最近我一直在琢磨怎么找出自己位置周边特定范围内的人员——比如说周边5公里内的所有人。经过好几次调研调整,总算把这个功能做出来了,现在运行得挺稳的。下面是核心的实现代码:

$lat = $latMe; // 我的纬度
$lon = $lonMe; // 我的经度
$rad = $distancePeople; // 设定的范围半径,比如10公里
$R = 6371; // 地球半径(单位:公里)

$maxLat = $lat + rad2deg($rad/$R);
$minLat = $lat - rad2deg($rad/$R);
// 补充经度范围计算(完整实现必备,经度跨度随纬度变化)
$maxLon = $lon + rad2deg($rad/($R * cos(deg2rad($lat))));
$minLon = $lon - rad2deg($rad/($R * cos(deg2rad($lat))));

几点实用说明:

  • 这段代码先通过地球半径和设定的距离范围,计算出当前位置对应的纬度、经度的最大/最小值范围,得到一个覆盖目标区域的矩形
  • 实际应用里,你可以先用这个矩形范围去数据库筛选人员,缩小查询范围提升效率;之后再用球面距离公式精准过滤出真正在设定半径内的人员,保证结果精确性
  • 地球半径这里用的是6371公里(平均半径),如果需要更精细的计算,可以根据需求调整为极半径或赤道半径

内容的提问来源于stack exchange,提问作者Siln6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:58:39