您应该搜索Haversine公式,但是一个好的开始可能是:
- 使用PHP,MySQL和Google Maps创建商店定位器 -请参见“使用MySQL查找位置”部分
- 使用MySQL进行地理/空间搜索
从第一个网址引用:
这是一条SQL语句,它将找到距离37,-122坐标25英里范围内的最近20个位置。
它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅查询距离值小于25的行,按距离对整个查询进行排序,并将其限制为20个结果。要按公里而不是英里进行搜索,请将3959替换为6371。
SELECt id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distanceFROM markersHAVINg distance < 25ORDER BY distanceLIMIT 0 , 20;



