【问题标题】:How do I do real time search for results based on driving distance?如何根据行驶距离实时搜索结果?
【发布时间】:2012-03-01 12:22:42
【问题描述】:

我有一个事件数据库(在英国)及其邮政编码(邮政编码)。

用户将他们的邮政编码输入网页并点击回车,一些很棒的算法/系统随后将返回用户邮政编码x英里行驶距离内的事件列表。

这可能是实时的吗?

我考虑过的解决方案是:

  • 缓存邮政编码区域(其中 4100 个)之间的所有距离并使用它。不完美,因为邮政编码区域是几英里平方,但现在还可以。最大的问题是我需要大约 8403000 的旅程距离,而且 Google Maps 有使用限制,而且 Map Quest 的 API 很慢,不适合查找邮政编码,我不想对其执行 DOS 攻击。

  • 缓存事件邮政编码和我的邮政编码区域列表之间的所有距离。仍然不完善,因为将有 1000 多个事件,并且添加事件时查找距离需要太长时间。

  • 将旅程缓存的数量限制在 100 或 200 英里范围内的邮政编码范围内。我没有对此进行调查,但考虑到英国的规模,它可以将每个事件所需的旅程总数减少 1/2 甚至 2/3 ......这更好,但仍然需要很长时间才能查找添加事件时。

  • 存储某种类型的邮政编码位置图表以及到下一个邮政编码区域的行程距离,并使用 A* 之类的东西即时搜索接近的邮政编码。这样做的问题是我没有时间/没有时间来实施和托管这样的系统。

有更好的解决方案吗?我错过了什么明显的东西吗?


编辑: MapQuest 使用 custom POI data sets 显示给 support driving distance search

不是proximity search 的重复项,因为我想要的是行车距离接近度,而不是纬度/经度接近度。

【问题讨论】:

    标签: graph-algorithm zipcode proximity


    【解决方案1】:

    我不知道英国的 OpenStreetMap 质量,但你可以下载他们的数据。如果数据质量足够好并且包含 PostalCode 信息,那么您可以使用他们的数据预先计算您想要的所有数据,而无需对某些在线数据存储进行 DOS 攻击。

    【讨论】:

      【解决方案2】:

      正如我作为编辑添加的那样:

      MapQuest 使用custom POI data sets 显示给support driving distance search

      不幸的是,由于 MapQuest 的数据限制,客户决定使用一个不太有趣的解决方案!

      【讨论】:

      • 只是好奇,哪些数据限制对客户来说是个问题?
      • 每天 5000 次搜索。有另一个想法,即当您添加一个事件(即查找最近的邮政编码)时反向进行搜索,这将达到 5000 个/天的限制。
      猜你喜欢
      • 2021-01-23
      • 2014-02-25
      • 2015-07-02
      • 2012-08-03
      • 1970-01-01
      • 2011-01-28
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多