这是我在商店定位器上使用的查询:
SELECt `id`, ( 6371 * acos( cos( radians( :lat ) ) * cos( radians( `lat` ) ) * cos( radians( `long` ) - radians( :long ) ) + sin(radians(:lat)) * sin(radians(`lat`)) ) ) `distance`FROM `location`HAVINg `distance` < :distanceORDER BY `distance`LIMIT 25
:lat和
:long是用户传递的点,其中
lat和
long是存储在数据库中的点。
:distance以英里为单位,在代码的工作版本中,:distance实际上是从10-50英里范围内的下拉列表中拉出的
借助joshhendo的解决方案,可以将3959(从地球中心到地面的距离,以英里为单位)更改为6371(将3959英里转换为公里),从而将代码更改为以千米为单位。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)