Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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和google gps api获取两点之间的距离_Php_Javascript_Google Maps_Gps - Fatal编程技术网

使用php和google gps api获取两点之间的距离

使用php和google gps api获取两点之间的距离,php,javascript,google-maps,gps,Php,Javascript,Google Maps,Gps,我在Stack Overflow上找到了这个链接,该链接显示了以下关于在给定两个不同纬度和经度值的情况下查找公里距离的解决方案: <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script> var p1 = new google.maps.LatLng(45.463688, 9.18814); v

我在Stack Overflow上找到了这个链接,该链接显示了以下关于在给定两个不同纬度和经度值的情况下查找公里距离的解决方案:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>

var p1 = new google.maps.LatLng(45.463688, 9.18814);
var p2 = new google.maps.LatLng(46.0438317, 9.75936230000002);

alert(calcDistance(p1, p2));

//calculates distance between two points in km's
function calcDistance(p1, p2){
    return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
   }

}

var p1=新的google.maps.LatLng(45.463688,9.18814);
var p2=新的google.maps.LatLng(46.0438317,9.75936230000002);
警报(钙距离(p1、p2));
//以公里为单位计算两点之间的距离
功能钙距离(p1、p2){
返回(google.maps.geometry.spheremic.computedDistancebetween(p1,p2)/1000.toFixed(2);
}
}
这是伟大的,但我正在创建一个应用程序,从数据库中提取纬度和经度值,并将每个值与恒定的纬度和经度值进行比较,以确定我从数据库中提取的用户是否在设置的纬度和经度的特定范围内

我在PHP中这样做,但我想将常量lat和long值以及当前lat和long值传递给上面的JavaScript函数,计算距离,然后将值返回给PHP变量。换句话说,我想在PHP中调用JavaScript函数,并将JavaScript值返回给PHP变量


我看到很多论坛都说这是不可能的,但也有人说这是不可能的。有人能帮我做这件事吗,或者建议另一种方法?我只需要在PHP中做一些老式的演算,而忘记Google API插件吗?

如果数据库中有纬度和经度值,可以使用下面的查询

SELECT a.*,
            3956 * 2 * ASIN(SQRT( POWER(SIN(($lat - lat) * pi()/180 / 2), 2) + COS($lat * pi()/180) * COS(lat * pi()/180) *
            POWER(SIN(($long - longi) * pi()/180 / 2), 2) )) as
            distance FROM table
            GROUP BY id HAVING distance <= 500 ORDER by distance ASC
选择一个*,
3956*2*ASIN(SQRT(功率(SIN($lat-lat)*pi()/180/2),2)+COS($lat*pi()/180)*COS(lat*pi()/180)*
功率(SIN($long-longi)*pi()/180/2,2))为
离桌子的距离

按id分组,距离如果数据库中有纬度和经度值,则可以使用下面的查询

SELECT a.*,
            3956 * 2 * ASIN(SQRT( POWER(SIN(($lat - lat) * pi()/180 / 2), 2) + COS($lat * pi()/180) * COS(lat * pi()/180) *
            POWER(SIN(($long - longi) * pi()/180 / 2), 2) )) as
            distance FROM table
            GROUP BY id HAVING distance <= 500 ORDER by distance ASC
选择一个*,
3956*2*ASIN(SQRT(功率(SIN($lat-lat)*pi()/180/2),2)+COS($lat*pi()/180)*COS(lat*pi()/180)*
功率(SIN($long-longi)*pi()/180/2,2))为
离桌子的距离

按id分组有距离我想知道这个查询是否可以用英尺代替米我想知道这个查询是否可以用英尺代替米