一个在数据库里计算距离的算法
  • 分类:经验分享
  • 发表:2019-10-10
  • 围观(4,767)
  • 评论(0)

偶尔看到一个在数据库里直接计算的算法,比网上查到的好多了。。。

SELECT *,ROUND(
6378.138 * 2 * ASIN(SQRT(POW(SIN((' . $lat . ' * 3.141592654 / 180 - location_x * 3.141592654 / 180) / 2),2) +
COS(' . $lat . ' * 3.141592654 / 180) * COS(location_x * 3.141592654 / 180) * POW(SIN((' . $lng . ' * 3.141592654 / 180 - location_y * 3.141592654 / 180) / 2),2))) * 1000) as distance From (TableName) WHERE 1=1  order by distance desc

记下以备后用。

红标为数据库内的值,

Top