2012-03-01 77 views
1

我有一个事件数据库(在英国)和他们的邮政编码(邮政编码)。如何根据驾驶距离实时搜索结果?

用户将输入他们的邮政编码到网页中,然后按回车,一些真棒算法/系统将随后返回用户邮政编码的x英里驾驶距离内的事件列表。

这是可能的实时?

我考虑的解决方案是:

  • 缓存(其中4100)邮政编码区域之间的所有距离和使用。由于邮编区域只有几英里,所以不太好,但现在可以。最大的问题是我需要大约8403000次旅行距离,谷歌地图有使用限制,Map Quest的API速度慢,不适合查找邮编,我不想对它进行DOS攻击。

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

  • 限制在乌鸦飞行时在100或200英里范围内的旅程高速缓存的数量。我没有调查过这个,但考虑到英国的规模,它可以减少每次活动所需的旅程总数1/2或甚至2/3 ...哪个更好,但仍然需要很长时间来查找添加事件时。

  • 存储某种邮政编码位置的图形,并显示下一个邮政编码区域的行程距离,并使用类似于A *的内容快速搜索关闭邮政编码。问题在于我没有时间/可用性来实现和托管这样的系统。

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


编辑: MapQuest似乎support driving distance search使用custom POI data sets

不是proximity search的副本,因为我想驾驶距离接近,而不是纬度/经度接近度。

回答

0

正如我已在为编辑:

MapQuest的使用custom POI data sets似乎support driving distance search

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

+0

只是好奇,什么数据限制原来是客户的问题? – jharahush 2012-03-09 16:12:36

+0

每天5000次搜索。尽管有另外一个想法,那就是当你添加一个事件(即找到最近的邮政编码)时可以反向搜索,这样可以达到5000次/天的限制。 – Jon 2012-03-12 15:32:10

0

我不知道OpenStreetMap在英国的质量,但你可以下载他们的数据。如果数据质量足够好并且包含PostalCode信息,则可以预先计算您希望使用其数据的所有数据,而不会在某些在线数据存储上发生DOS攻击。