MySQL 通过经纬度查询附近的目标

发布时间: 2018-08-18 21:30:01 作者: 大象笔记

之前一直使用 Redis 的 GeoHash 来查询附近的目标,但是为了架构的简化,我决定尝试一下 MySQL 来进行查询。

SELECT name, latitude, longitude, SQRT(
    POW(69.1 * (latitude - [target_lat]), 2) +
    POW(69.1 * ([target_lng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName 
HAVING distance < [distance]
ORDER BY distance;

单位为 miles, 英里。

1 英里=1.6093 千米

参考

https://stackoverflow.com/questions/2234204/latitude-longitude-find-nearest-latitude-longitude-complex-sql-or-complex-calc

我是一名山东烟台的开发者,联系作者