在生产服务器上使用地理编码器

我正在开发基于位置的应用程序。 我需要一个值得信赖的来源来获取地理位置。

现在我正在使用这个地理编码器插件。

我收到这个错误: –

Geocoding API not responding fast enough (see Geocoder::Configuration.timeout to set limit). 

当我们的5人团队正在测试登台服务器时,我收到错误

我需要一个足够快的解决方案,每天有大约10k的请求,没有每秒限制

PS:我愿意使用一些付费服务。

编辑

想想你想在NewYork搜索一些东西的案例。 在文本框中,您将键入newyork并按Enter键。 现在在服务器端,我需要为newyork获取地理编码,然后根据它在db中搜索。

您应该对客户端进行地理编码(在javascript中),您将不会遇到限制:

通过地理编码Web服务进行的服务器端地理编码每天每个IP的配额为2,500个,因此一天内的所有请求都会计入配额。 此外,Web Service受速率限制,因此进入过快的请求会导致阻塞。 通过浏览器进行的客户端地理编码在每个地图会话中都受到速率限制,因此地理编码会分布在您的所有用户身上,并随您的用户群进行扩展。 地理编码配额和速率限制推动了本文中概述的策略。

何时使用客户端地理编码

基本答案是“几乎总是”。 由于地理编码限制是每个IP地址,因此该限制将针对您的应用程序的使用者。 如果有人每天要在他们的计算机上输入2,500多个地址,那将是非常罕见的。 因此,运行客户端地理编码时,通常不必担心配额。

http://code.google.com/apis/maps/articles/geocodestrat.html

任何基于Web的服务都可能发生这种情况。 您可能需要考虑将这些任务发送到后台作业管理器(例如Resque或Delayed Job),这将在不中断用户的情况下重试失败的作业。 它们还使您的应用程序看起来更快,因为您的用户不必等待第三方(可能是间歇性的)Web应用程序进行响应。

尝试使用maxmind.com – 这将根据IP地址进行地理查找。 他们有一个免费或付费的数据库,您的商店在您的服务器上。 他们有一个Ruby API 。 我在生产系统中使用它,并且在缓存数据时查找通常是亚毫秒。