【发布时间】:2020-08-05 03:49:12
【问题描述】:
这个问题不同于常规的 mysql lat/long,radius based data fetching
我想搜索一个包含以下列的mysql数据库表-
ID Items lat long serving_radius(in km)
1 Item1 26.120888 85.364723 2
2 Item2 26.120888 85.364723 5
3 Item3 25.859800 85.786598 4
4 Item4 26.594900 85.504799 8
现在,如果用户有 lat/long (29.941095/77.812424) 想知道哪些商品可以在他的位置提供。然后我将如何使用 php & mysql 获取结果。
【问题讨论】:
-
请发布您的代码
-
我使用以下代码获取预定义服务半径为 10 公里的结果
-
$query = mysqli_query($conn, "SELECT *, (6371 * acos(cos(radians('$lat')) * cos(radians(lat)) * cos( radians(lng) - 弧度('$long')) + sin(radians('$lat')) * sin(radians(lat)))) 作为产品的距离 WHERE status = '$status' HAVING distance
-
但是现在我不知道如何在不同项目的服务半径不同时编写查询
-
如果表很大,那么提到的直接解决方案会很慢。这是因为必须测试每一行。你最终会有多少行?
标签: php mysql geolocation latitude-longitude