获得两点之间的距离使用谷歌GPS与PHP的API
我发现这个链接堆栈溢出谷歌地图 - 如何获得米之间的两点之间的距离? 其中给出了关于在给定两个不同纬度和经度值的情况下找到km距离的以下解决方案:
<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);
}
}
这是伟大的,但我的工作原理是创建一个应用程序,它从数据库中提取纬度和长度值,并将每个值与经常的经度和纬度值进行比较,以确定我从数据库中提取的用户是否在某个范围内一套拉特和长。
我在PHP中这样做,但我想传递恒定的经度值和长度值以及当前经纬度和长整型值到上面的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
$ lat和$ long变量是用户的当前位置。 lat和longi是条目的纬度和纵向。
另请参阅“使用PHP,MySQL和Google Maps创建商店定位器”了解上述查询的工作方式
链接地址: http://www.djcxy.com/p/47301.html上一篇: getting distance between two points using google gps api with php
下一篇: Usage of OpenMapStreet API/GoogleMap API in Java /Swing Application