【问题标题】:Best approach to caching geocoded results缓存地理编码结果的最佳方法
【发布时间】:2013-08-17 16:09:44
【问题描述】:

我们有一个大约有 150 万行的数据库,很快就会接近 300 万行。每行都有一个地址。我们的服务负责以多种方式可视化地图上的每一行。问题是很多时候,每张地图都会显示超过一千个不同的行。因此,让客户端(或服务器)从诸如 Google Maps API v3 之类的东西加载所有 1000 个坐标是不切实际的。

理想情况下,我们希望将坐标值存储到表格中,以便随时使用。但是,速率限制会使成功缓存所有数据需要几个月的时间。

是否有没有限制的服务,或者可能允许一次发送多个地址以加快流程?

【问题讨论】:

  • 您的地址在美国吗?如果不是,是哪些国家? (只有少数国家有地址级地理编码。)
  • 是的,地址在美国。可能有几行引用了其他国家/地区,但我们现在可以忽略它们。
  • 我应该提一下,如果有显着差异,可以使用邮政编码或城市来代替完整地址。更高的准确性会很好,但乞丐不能选择。

标签: database google-maps-api-3 geocoding


【解决方案1】:

您可以尝试SmartyStreets 的 LiveAddress——地址不仅会进行地理编码,还会进行验证。 (不过,您不会获得未经验证的地址的地理编码结果。)

您可以上传包含所有地址的列表或通过我们的 API 处理它们。 (如果您的地址未拆分为组件,您现在需要使用 API,每个请求可以接收 100 个地址。)当然,对于 100 万多行,它不是免费的(除非您是非营利组织或教育),但该服务可在云中扩展,每秒可以处理数千个地址。有适合数百万查找的计划,一直到无限制。 (顺便说一下,我在 SmartyStreets 工作。)

大多数地址具有“Zip9”精度(意味着坐标精确到 9 位邮政编码级别,类似于块级别)。有些是 Zip7 或 Zip5,它们不太准确,但可能足以满足您的需求。

不过,如果您需要安排精准跳伞,您可以考虑使用更专业的地图服务,该服务可为您提供屋顶级别的精确度并允许您存储数据。我知道您可以存储和缓存 SmartyStreets 数据,但地图服务有不同的限制。例如,Google 拥有大多数美国地址的屋顶级数据,并允许您缓存他们的数据以提高性能,但您不能将其存储在数据库中并构建自己的数据集。您也可以向 Google 支付费用以提高您的费率限制,尽管这有点贵。

我不确定其他地图提供商有什么条款。 (TAMU 等地理编码服务的准确性更高,但基础设施能力较差,因此存在速率限制,尽管您可能需要付费才能提高或取消这些服务。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多