在MySQL数据库中搜索用于输入经纬度的值

问题描述:

这个问题不同于常规的基于纬度的mysql lat/long/radius数据获取

This question is different from regular mysql lat/long, radius based data fetching

我想搜索一个包含以下列的mysql数据库表,例如-

I want to search a mysql database table which contains following columns for example-

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

现在,如果用户的经/纬度为(29.941095/77.812424),则想知道可以在他的位置提供这些商品中的哪些商品.然后,我将如何使用php&获取结果. MySQL的.

Now if a user has lat/long (29.941095/77.812424) wants to know which of these items can be served at his location. Then how i will fetch the result using php & mysql.

"serving_radius"是否已存储在您的表中? 您可以做的就是获取距离,并检查它是否在serving_radius下

Is "serving_radius" already stored in your table ? What you can do is fetch distance and check if its under serving_radius

SELECT serving_radius, 
(6371 * acos(cos(radians(" . $userLatitude . ")) * cos(radians(`latitude`)) * cos(radians(`longitude`) - radians(" . $userLongitude . ")) + sin(radians(" . $userLatitude . ")) * sin(radians(`latitude`)))) as distance 
having distance < serving_radius