2012-03-16 50 views
0

我希望我的网站上的用户能够在一定距离内搜索其他用户。例如'查找[5]英里内的所有用户'。我有一些代码可以做到这一点,就像“乌鸦飞翔”一样,但我希望能够找到包括道路在内的实际距离。我知道我需要一个第三方工具来做到这一点,但我不知道要使用什么。谷歌地图API有这个功能吗?我的代码此刻:找到设定点距离一定范围内的所有用户?

$results = $members->prepare("SELECT users.fname, users.lname, activate.profession, activate.town, ROUND((3958.75 * ACOS(SIN(?/57.2958)*SIN(uk_postcodes.latitude/57.2958)+COS(?/57.2958)*COS(uk_postcodes.latitude/57.2958)*COS(uk_postcodes.longitude/57.2958 - ?/57.2958))), 1) as distance FROM uk_postcodes JOIN activate on activate.outward = uk_postcodes.postcode and activate.userid != ? JOIN users on users.user_id = activate.userid WHERE (3958.75 * ACOS(SIN(?/57.2958)*SIN(uk_postcodes.latitude/57.2958)+COS(?/57.2958)*COS(uk_postcodes.latitude/57.2958)*COS(uk_postcodes.longitude/57.2958 - ?/57.2958))) <= ?"); 

    $lat = $_POST['latitude']; 
    $long = $_POST['longitude']; 

    $results->bind_param('ssssssss', $lat, $lat, $long, $_SESSION['token'], $lat, $lat, $long, $_POST['distance']); 
    $results->execute(); 

任何帮助表示赞赏,谢谢。

回答

0

Google Maps方向API将返回以英里为单位的距离以及行程时间。不过,我确信Google要求您在使用Google Maps API时显示Google地图。

下面是方向API信息的链接:

Google Maps Direction API

您将需要找到一种方法,在PHP中使用JavaScript的信息,或只需切换到JavaScript来找到用户。

+0

这是不是只显示两点之间的方向? – 2012-03-16 15:53:12

+0

向下滚动我上面提到的页面,直到找到JSON输出。在这里你可以看到以英里提到的距离。您应该能够阅读并将其用于您的目的。 – 2012-03-16 16:00:37

+0

我确定有办法做到这一点,但没有我能想到的。谷歌地图需要一个目的地是必需的,我没有一个。所以我认为我只是放弃大声笑 – 2012-03-16 16:10:26

相关问题