我是地理信息系统的新手,我想在我的数据库(mySQL)中搜索k最近的邻居。据我所知,选项是: 1)使用Haverstine公式-但它将在整个数据库上运行,我知道我可以将索引添加到lat和long中来改进事情。2)如下所述使用展开区域:http://blogs.msdn.com/b/isaac/archive/2008/10/23/nearest-neighbors.aspx 3)此处所述使用边界框:http://code.google.com/intl/iw-IL/appengine/articles/geosearch.html 4)使用此处所述的点和MBRContains函数:Fastest Way to Find Distance Between Two Lat/Long Points
我想知道每种方法的优缺点,以及哪种方法(或组合)最适合获得快速和适度准确的结果。另外,我应该使用点和多边形,还是只使用经度/经度?我知道这个话题在这里已经讨论了不止一次,但我仍然不确定答案是什么。TNX
发布于 2012-03-15 07:46:09
我决定使用Alexander Rubin的这个想法,他是MySQL (2006)的高级顾问,它使用lat和long。它可以在这里找到:http://www.google.co.il/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331768736541&ved=0CC8QFjAA&url=http%3A%2F%2Fassets.en.oreilly.com%2F1%2Fevent%2F2%2FGeo%2520Distance%2520Search%2520with%2520MySQL%2520Presentation.ppt&ei=nC1hT4KlD6mk0QX1uOmGBw&usg=AFQjCNF-JRRwbrOhQPim3d1wRDc2dI8HsQ&sig2=uoRdf1PMkZTNSh7m7zXu-A
希望能对你们中的一些人有所帮助
https://stackoverflow.com/questions/9687290
复制相似问题