我有一个包含经度和纬度值的数据库。我想做的是将这些数据聚类以便每次搜索数据库时得到的结果更少。有什么想法如何实现这一点吗?
这是一个类似的问题:在数据库中聚集Lat/long
查找最接近给定经度/纬度的记录并不太疯狂。假设您有一个包含longitude
和latitude
列的表location
,您可以执行以下操作(将和替换为您的点的值)。
SELECT id, latitude, longitude,
ROUND(6353 * 2 * ASIN(SQRT(POWER(SIN((<point_latitude> -
abs(latitude)) * pi()/180 / 2),2) + COS( <point_latitude> * pi()/180 )
* COS( abs(latitude) * pi()/180)
* POWER(SIN(( <point_longitude> - longitude)
* pi()/180 / 2), 2) )), 2) AS distance
FROM location
ORDER BY distance ASC
LIMIT 30;
你可以对空间函数做类似的操作