缓存地理编码结果的最佳方法

时间:2013-08-15 13:03:27

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以按SmartyStreets尝试LiveAddress - 地址不仅会进行地理编码,还会经过验证。 (但是,对于无法验证的地址,您将无法获得地理编码结果。)

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

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

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

我不确定其他地图提供商有哪些条款。 (像TAMU这样的地理编码服务具有更好的准确性,但基础设施能力较差,因此速率限制,尽管您可能需要付费才能获得或提升。)