Php 匹配长&短;半径内的纬度

Php 匹配长&短;半径内的纬度,php,mysql,google-maps,mapping,latitude-longitude,Php,Mysql,Google Maps,Mapping,Latitude Longitude,我正在考虑使用我的地图坐标进行基于位置的搜索,但我不知道从哪里开始 我有一个坐标数据库——当我进入郊区时,我想显示给定半径内的所有匹配。(即,搜索长/横向坐标数据库,并返回所有在搜索的长/横向坐标x半径范围内的坐标) 我不知道如何实现这一点,也不知道从哪里开始?这实际上取决于您使用的数据库。 一般的方法是使用一个scaler-value函数,该函数使用如下公式: distance = ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lo

我正在考虑使用我的地图坐标进行基于位置的搜索,但我不知道从哪里开始

我有一个坐标数据库——当我进入郊区时,我想显示给定半径内的所有匹配。(即,搜索长/横向坐标数据库,并返回所有在搜索的长/横向坐标x半径范围内的坐标)


我不知道如何实现这一点,也不知道从哪里开始?

这实际上取决于您使用的数据库。 一般的方法是使用一个scaler-value函数,该函数使用如下公式:

distance = ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
然后您可以编写如下查询:

select * 
from locations 
where mydistancefunction(lat1,lng1,locations.lat,locations.lng) < @radius
选择*
从地点
其中mydistancefunction(lat1,lng1,locations.lat,locations.lng)<@radius

这实际上取决于您使用的数据库。 一般的方法是使用一个scaler-value函数,该函数使用如下公式:

distance = ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
然后您可以编写如下查询:

select * 
from locations 
where mydistancefunction(lat1,lng1,locations.lat,locations.lng) < @radius
选择*
从地点
其中mydistancefunction(lat1,lng1,locations.lat,locations.lng)<@radius

您知道吗?尝试在表中创建一个空间列,即点,然后使用空间扩展提供的函数,这样您就不会重新发明轮子了。

您知道吗?尝试在表中创建一个空间列,即点,然后使用空间扩展提供的函数,这样您就不会重新发明轮子了车轮

@Argiropoulos Stavros-使用MySQL@ArgiropoulosStatvros-使用MySQL