Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用纬度和经度,半径为40公里_Php_Mysql_Google Maps - Fatal编程技术网

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和-至少我想-我已经回答过你了,它是十进制度数()