找到靠近路线的前n个地方

时间:2016-08-25 19:32:20

标签: geolocation distance openstreetmap

我有很多地方数据(旅游景点)存储在数据库中。每个地方都有协调信息,例如纬度和经度。当我随机选择一条路线时(例如:从纽约的某个地方到波士顿的某个地方),我怎样才能找到路线上最近的10个地方?我想这与地理算法有关。我正试图找到一种方法来最小化总计算时间并节省手机电池。谢谢你的任何建议!

1 个答案:

答案 0 :(得分:1)

一种方法是:

  • 将地图视为一个网格,例如1km x1km的方框
  • 绘制路线并查看它输入的这些网格框中的哪一个。
  • 对于每个方框,如果您在数据库中搜索网格框开始/结束的最小/最大经度/ latidtude位置,请在框中找到地方/地标,这在计算上并不昂贵

要显示这些地方的前N个,您可以计算这些地方子集的最短距离,而不是整个数据集。