根据纬度和经度从mysql中获取数据

时间:2016-05-16 07:39:56

标签: php mysql

我想从MySQL中根据用户选择的纬度和经度提取数据。 例如,如果用户在加利福尼亚州要求列表,我想在加利福尼亚提取一些列表,或者如果用户在AlisoViejo中请求列表,我需要在AlisoViejo中获取列表。为此我使用纬度和经度,任何人都可以让我知道如何实现这个

1 个答案:

答案 0 :(得分:0)

直接或间接(使用关系表)保留列表中每条记录的纬度和经度数据。然后使用这样的东西(取自MYSQL Geo Search having distance performance):

SELECT a .* , 
    round( sqrt( 
        (POW(a.latitude -'53.410778', 2)* 68.1 * 68.1) + 
        (POW(a.latitude -'-2.97784', 2) * 53.1 * 53.1) 
     )) AS distance
FROM adverts a
     WHERE a.type_id = 3
     HAVING distance < 25
     LIMIT 0 , 30

或使用MYSQL的地理空间功能:

https://dev.mysql.com/doc/refman/5.7/en/spatial-analysis-functions.html

https://www.percona.com/blog/2013/10/21/using-the-new-mysql-spatial-functions-5-6-for-geo-enabled-applications/