我目前在mysql数据库中的位置不到一百万个,都有经度和纬度信息.
我试图通过查询找到一个点和许多其他点之间的距离.它没有我想要的那么快,尤其是每秒100次点击.
是否有更快的查询或可能比mysql更快的系统?我正在使用此查询:
SELECT
name,
( 3959 * acos( cos( radians(42.290763) ) * cos( radians( locations.lat ) )
* cos( radians(locations.lng) - radians(-71.35368)) + sin(radians(42.290763))
* sin( radians(locations.lat)))) AS distance
FROM locations
WHERE active = 1
HAVING distance < 10
ORDER BY distance;
Run Code Online (Sandbox Code Playgroud)
注意:提供的距离以英里为单位.如果您需要公里数,请使用6371而不是3959.
关于这一点有很多页面,但我还没有找到真正有用的东西.目前,我已经使用了谷歌距离矩阵,并找到了两个地点之间的距离,但没有运气转移从JavaScript到PHP的距离.昨天我在这里发了一篇关于那个没有成功的帖子.所以我的另一个选择是在PHP中使用矩阵找到距离.我仍然会显示地图和所有内容,就在下一页我希望得到两个位置之间的距离值来使用它来查找行程的成本然后发送到mysql数据库,所以我需要获得PHP的价值.
我已经尝试了我在网上找到的各种例子,但似乎没有一个适合我.
$url = 'http://maps.google.com/maps/nav?q=from:London%20to:Dover';
$data = @file_get_contents($url);
$obj = json_decode($data);
print $obj->meters;
Run Code Online (Sandbox Code Playgroud)
例如那个.我不知道如何做我正在尝试的事情,无论寻找结束的日子,并且真的很感激一些帮助,因为我已经坚持了一段时间.