迁移

迁出 Google Places 自动补全集成

自动补全与单次地理编码调用是不同类型的集成。用户在地址输入框中几乎每敲一个键它都会触发,在某些服务商那里还依赖基于会话的计费或分组,而且响应必须足够快,否则正在输入的人会明显感觉到延迟。正因为用户直接且实时地与它交互,迁移这部分比批量地理编码任务带来更大的用户体验风险。

Google Places Autocomplete 返回一个预测列表,每一项都带有一个 description 字符串和一个 place_id,后者用于后续的详情调用,以获取完整的地址和坐标信息。这种先预测、后详情的两步模式是一种特定的交互模型,影响了围绕它构建的大量前端代码,包括防抖时间,以及在详情调用返回之前如何显示已选中的结果。

在这种情况下,如实描述能力非常重要。My Geocode 在其查询端点中提供地址自动补全,请求和响应格式见 /docs/address-autocomplete/,但任何自动补全端点的具体行为,包括会话分组和结果排序,都值得直接用您自己的地址数据和用户模式进行测试,而不要假定与 Google 的两步模型一一对应。不同服务商对从建议到详情的流程有不同的设计,这种结构差异通常才是这里最大的实际迁移工作,比任何单个字段名都重要。

这次迁移的实用步骤:

  • 理清您当前的实现是否需要先预测、后详情的两步模式,还是单次调用的建议端点其实能简化您的前端代码
  • 在您自己的网络条件下,根据新端点的真实响应时间测试防抖和最少字符数设置,而不是沿用为 Google 基础设施调整的数值
  • 检查您的界面如何处理返回为空或只有一个结果的预测列表,因为不同服务商的排序行为差别很大,您的兜底用户体验不应依赖于收到多个建议

新端点的身份验证使用密钥,可通过 X-API-Key 请求头、Authorization: Bearer、HTTP Basic 认证或查询参数发送。完全不用密钥每天有 2,500 次免费请求,每个密钥每天另有 2,500 次免费请求,按网络计算,超出之后按每次请求 €0.0001 使用预付额度,或使用每月 €50 的 Unlimited 密钥,与其他所有端点费率相同。

由于大多数按键都会产生一个请求,自动补全调用的数量相对于实际的地理编码调用可能很高,因此在确定上线日期之前,值得根据免费配额和每次请求的费率估算预期的每日用量,以免在上线第一周的真实流量中出现意外。