我有一个MYSQL表,有数百万个位置,结构如下:
id latitude longitude
1240451 6.893 79.85412
1240450 6.932 79.85005
1240448 7.082 79.89186
1240449 6.932 79.86133
我有另一个表,记录行程的起始和结束位置,结构如下:
id jrny_startlat jrny_startllong jrny_endlat jrny_endlong
17 6.81462565 79.88666117 6.80900081 79.91052210
基本上,我必须通过比较位置表,使用旅程开始的纬度和旅程结束的纬度来找到可能的路径。
看这里——谷歌地图和诺基亚地图如何从一个点到另一个点生成路线——或者在维基百科页面http://en.wikipedia.org/wiki/Pathfinding上描述众所周知的算法。然后,您可能想要研究A* (A-star)算法,或者(如果您将在同一组数据上解决许多路由)查看收缩层次结构:http://en.wikipedia.org/wiki/Contraction_hierarchies