模糊匹配坐标列表(Golang)

时间:2018-07-29 02:40:31

标签: go

我正在尝试创建一个简单的工具,该工具将允许用户指定西雅图周围的两个地方。

我正在处理WSDOT交通数据集。可以在以下位置找到输出示例:https://gist.github.com/jaxxstorm/0ab818b300f65cf3a46cc01dbc35bf60

我想做的是指定两个位置,例如:

贝尔维尤 西雅图

,然后查找这些位置的所有流量时间。

我正在考虑做一个像this answer这样的反向地理编码,但是我希望它是“模糊的”,因为我不想人们必须指定确切的位置。我还怀疑这样做的处理时间可能会很长,因为我必须遍历列表,然后反向查找所有可能花费一小会儿时间的坐标。

是否有更好的替代方法以这种方式处理此数据?我正在用Go编写工具

1 个答案:

答案 0 :(得分:0)

每组点(起点和终点)都有两个问题:

  1. 将位置转换为经纬度
  2. 模糊匹配此交通数据(包含lat,lon)的经纬度

使用反向地理编码api(例如Google提供的反向api),可以轻松实现经纬度转换。

要模糊地匹配纬度,您可以截断纬度并将其存储为哈希值(以便存储近似匹配项),然后以这种方式查找数据,也可以进行半径计算并在其中选择结果该半径(这需要一些涉及地球半径的数学运算,您可以很容易地查找它,例如,如果您的数据在db中,则可以在sql中完成)。