我有一个数据库满地点(可以说超过50)与他们的地址。并且从APP向我发送他们的位置,并且我必须按照他们发送给我的位置更近的位置顺序返回。我是否每次都必须进行Google Maps API通话,并且需要知道吗?或者有另一种方式,更好的表现。 谢谢我该怎么做,以距离顺序返回地方
0
A
回答
-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;
这假设你有经度和纬度列,并将从数据库中获取地点,并按距离排序。
看看这个演示文稿作为参考和d了解计算http://es.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL
+1
链接只有答案是不鼓励 – 2016-01-13 03:42:02
+0
感谢您的注意。我更新了回复并添加了该链接作为参考。 –
相关问题
- 1. 我该怎么做?
- 2. MySQL,Node.js顺序操作 - 我该怎么做?
- 3. 我该怎么做最好的方法
- 4. 我应该怎么做,当SetEvent返回false
- 5. 我应该怎么做?
- 6. 我该怎么做MongoDB中
- 7. 我该怎么做PyQt4?
- 8. regexp freebie ...我该怎么做?
- 9. 反思?我该怎么做?
- 10. 我该怎么做(游戏)?
- 11. 当我在MongoDB中进行地理空间查询时,我该如何返回距离期望点的距离?
- 12. 交叉验证返回1.0以上的分数我应该怎么做?
- 13. 这是什么叫,我该怎么做?
- 14. 可以返回一个本地初始化数组,如果没有,我该怎么做?
- 15. OSRM-backend返回距离:0
- 16. MongoDB:geoNear没有返回距离
- 17. 距离他们的距离顺序最近的10个目的地
- 18. 按距离排序的地方 - Android
- 19. 我不小心做了ulimit -r1,我想回到ulimit -r90 +,我该怎么做?
- 20. C++ 12bit变量,我该怎么做?
- 21. 隐藏NSArray - 我该怎么做?
- 22. 我应该怎么做一个聚合?
- 23. list.setGrouped(true)不工作?我该怎么做?
- 24. C#对象参考:我该怎么做?
- 25. 我该怎么做?(Android Whack-A-Mole)
- 26. Windows文件到TFS - 我该怎么做?
- 27. 用户输入,我们该怎么做?
- 28. 生成S函数我该怎么做
- 29. 试着抓住C#我该怎么做?
- 30. Eclipse交叉编译...我该怎么做?
如果储存在那里纬度\经度,你可以对它们进行排序 – 2016-01-13 03:33:07
商店纬度和经度为你的位置和[使用空间索引来查找最近的一个](http://dba.stackexchange.com/questions/4214/how-to-best-implement-nearest-neighbour-search-in-mysql)。 – kozlice