Php 基于经纬度从mysql获取数据
我想从MySQL中提取基于用户选择的纬度和经度的数据。Php 基于经纬度从mysql获取数据,php,mysql,Php,Mysql,我想从MySQL中提取基于用户选择的纬度和经度的数据。 例如,如果用户请求在加利福尼亚州登录,我想提取加利福尼亚州的一些登录,或者如果用户请求在AlisoViejo登录,我需要在AlisoViejo中获取登录。为此,我使用纬度和经度,请任何人告诉我如何实现这一点直接或间接(使用关系表)保留列表中每个记录的纬度和经度数据。然后使用类似以下内容(摘自): 选择一个。*, 圆形(sqrt( (太平洋纬度-'53.410778',2)*68.1*68.1+ (功率(纬度-'-2.97784',2)*53
例如,如果用户请求在加利福尼亚州登录,我想提取加利福尼亚州的一些登录,或者如果用户请求在AlisoViejo登录,我需要在AlisoViejo中获取登录。为此,我使用纬度和经度,请任何人告诉我如何实现这一点直接或间接(使用关系表)保留列表中每个记录的纬度和经度数据。然后使用类似以下内容(摘自):
选择一个。*,
圆形(sqrt(
(太平洋纬度-'53.410778',2)*68.1*68.1+
(功率(纬度-'-2.97784',2)*53.1*53.1)
))作为距离
从广告
其中a.type_id=3
距离小于25的
限制0,30
或者使用MYSQL的地理空间功能:
您已经尝试了多远?我们对您的数据库、表、应用程序和所需的最终结果一无所知。请逐步描述您希望用户选择位置的确切方式以及希望显示的结果。我的数据库中存储了数千个列表。当用户选择一个州时,我需要携带该州的所有列表,或者如果用户选择城市,我需要携带该城市的所有列表,或者如果用户选择国家,我需要携带该国家的列表。交互的唯一方式是纬度/经度
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