如何按距离返回地点

时间:2016-01-13 03:26:50

标签: php ios mysql api google-maps

我有一个充满地址的数据库(比方说超过50个)和他们的地址。从一个APP他们发送给我他们的位置,我必须通过更接近他们发送给我的位置返回地点。我是否必须每次都进行Google Maps API调用,对于50岁的人来说,要知道吗?或者有另一种方式,具有更好的性能。 谢谢

1 个答案:

答案 0 :(得分:-2)

我假设您的数据库是MySQL,并且您拥有存储位置的纬度和经度。

您可以使用SQL查询进行地理空间搜索。例如这一个

set @orig_lat=122.4058;
set @orig_lon=37.7907;

SELECT *, 3956 * 2 * ASIN(SQRT( POWER(SIN((@orig_lat - abs(dest.lat)) * pi()/180 / 2),2) + COS(@orig_lat * pi()/180 ) * COS(abs(dest.lat) *  pi()/180) * POWER(SIN((@orig_lon – dest.lon) * pi()/180 / 2), 2) )) as distance
FROM Places dest
ORDER BY distance;

假设你有lat和lon列,并从数据库中获取位置并按距离排序。

请参阅此演示文稿作为参考,并了解计算http://es.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL