Php 使用纬度和经度,半径为40公里
可能重复:Php 使用纬度和经度,半径为40公里,php,mysql,google-maps,Php,Mysql,Google Maps,可能重复: 我有一个MyISAM表,数据存储在其中。这些数据包括谷歌地图的纬度和经度。我试图实现的是选择样本经纬度40公里半径范围内的所有对象 谢谢 我使用此查询获取$radius周围$lat/$lng范围内的所有点: SELECT *, ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radi
我有一个MyISAM表,数据存储在其中。这些数据包括谷歌地图的纬度和经度。我试图实现的是选择样本经纬度40公里半径范围内的所有对象
谢谢 我使用此查询获取
$radius
周围$lat
/$lng
范围内的所有点:
SELECT
*,
( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC
选择
*,
(6371*acos(cos(弧度({$lat}))*cos(弧度(`lat`))*cos(弧度(`lng`)-弧度({$lng}))+sin(弧度({$lat}))*sin(弧度(`lat`)))作为距离
从`位置`
有可能重复的距离(和其他25个,请参阅“相关”侧栏。这一个看起来像一个完全重复的:)试试这个类,它工作得很好:如果我必须使用英里数,那么我必须更改(6371)?以英里为单位的地球半径是3959
-只需将数字替换为该数字,您的结果将以英里而不是公里为单位。@DerVO查询中$lat和$long变量的格式是什么?@ashifsheref两者都从-180到+180,例如$lat=-74.016617$液化天然气=40.747933代码>在哈德逊河的任意一点。@ashifsheref和-至少我想-我已经回答过你了,它是十进制度数()