我想根据纬度和经度应用过滤器。有一个表,其中包含列 id、标题、纬度、经度 (MySql),我想获得 4 公里范围内的结果,因为我提供了当前位置的纬度和经度。
SELECT * FROM ads WHERE (latitude = 26.85005 AND longitude = 26.85393) AND (longitude = 80.94964 AND longitude = 80.96595) HAVING acos(sin(1.3963) * sin(latitude) + cos(1.3963) * cos(latitude) * cos(longitude - (-0.6981))) <= 0.1570
最佳答案
是的,这是可能的。
SELECT a.title,
111.111 *
DEGREES(ACOS(LEAST(COS(RADIANS(a.Latitude))
* COS(RADIANS(b.Latitude))
* COS(RADIANS(a.Longitude - b.Longitude))
+ SIN(RADIANS(a.Latitude))
* SIN(RADIANS(b.Latitude)), 1.0))) AS distance_in_km
FROM table AS a
JOIN table AS b ON a.id <> b.id
HAVING distance_in_km <= 4
在这里,HAVING distance_in_km <= 4
4是KM范围。
关于php - 如何根据纬度和经度应用过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943235/