本文档介绍了许多实际场景,在这些场景中,Address Validation API 会针对需要系统执行确认行为的地址提供响应信号。此处的示例仅供说明,并非详尽无遗。如需了解背景信息,请参阅构建验证逻辑中的工作流概览。
常见示例:确认
以下示例说明了街道名称相似的大都市区的情况。假设用户打算输入美国华盛顿州柯克兰 Google D 栋的地址。但是,他们不小心输入了 Seattle(西雅图),而不是 Kirkland(柯克兰)作为城市。
| 已输入地址 | 区域 |
|---|---|
| Building D, 451 7th Avenue South, Seattle, WA 98033 | 美国 |
针对替换数据的判定
以下示例重点介绍了判定中的重要信号。
{
"inputGranularity": "SUB_PREMISE",
"validationGranularity": "PREMISE_PROXIMITY",
"geocodeGranularity": "PREMISE_PROXIMITY",
"addressComplete": true,
"hasUnconfirmedComponents": true
"hasReplacedComponents": true
}
PREMISE_PROXIMITY 粒度级别表示建筑物级地址的近似值,但不如 SUB_PREMISE 详细,后者是输入时提供的粒度。该回答还包含未确认和已替换的组件,因此这些组件的组合使其属于确认类别。
对地址组成部分的查询揭示了以下需要关注的方面:
{
"componentName": {
"text": "451",
},
"componentType": "street_number",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
...
{
"componentName": {
"text": "98104",
},
"componentType": "postal_code",
"confirmationLevel": "CONFIRMED",
"replaced": true
}
...
{
"componentName": {
"text": "Building D",
"language_code": "en"
},
"componentType": "subpremise",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
.......
"unconfirmedComponentTypes": [
"street_number",
"subpremise"
]
在这种情况下,Address Validation API 找到了与所提供地址(位于西雅图)非常接近的地址,并替换了邮政编码(更高级别的组成部分),以解析为西雅图地址。这可能是一个有效的替换,但由于组件未确认,因此有必要确保用户打算输入的是西雅图地址,而不是其他地址(例如柯克兰)。
极端情况示例:确认
以下示例说明了以下极端情况类型:
- 已确认的次要推断。 Address Validation API 会推断国家/地区、邮政编码或州/省/自治区/直辖市,但其他所有信息均由用户提供并确认。粒度和确认级别的组合会产生不一定需要确认操作的次要推断。
- 未确认意外的地址组成部分。 未确认的地址组成部分会增加地址的风险等级。这可能需要确认。
- 已确认的意外地址组成部分。 该组成部分并非正确地址所必需,Address Validation API 会将其从输出中移除。格式问题通常不需要确认。
已确认的次要推论
如果与更精细级别的确认数据结合使用,即使输入仅缺少以下类型的一个组成部分,该 API 仍可做出正确的推断:
- 城市
- 州
- 邮编
- 国家/地区
例如,客户提供了马萨诸塞州斯普林菲尔德一家麦当劳餐厅的有效街道地址,但忘记输入城市,并且提供的邮政编码不含 4 位扩展码。
| 已输入地址 | 区域 |
|---|---|
| 1402 Allen St, MA 01118 | 美国 |
城市缺失的判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"addressComplete": true,
"hasInferredComponents": true
}
在 Address Validation API 推断更高级别的组件以生成可送达地址的情况下,您可以更确信系统中的数据是正确的。这是因为,代表大地理区域的推断组成部分更容易与更精细的已确认地址组成部分匹配。即使在城市名称重复的国家/地区(例如美国的斯普林菲尔德),与其他组成部分结合使用也能提供唯一的地址。
以上面的示例为例,对所有地址组成部分进行扫描后,系统会显示每个组成部分都已确认,这意味着它们与 Address Validation API 存储的数据相匹配,并且该服务还推断出两个更高级别的组成部分。
{
"componentName": {
"text": "Springfield",
"languageCode": "en"
},
"componentType": "locality",
"confirmationLevel": "CONFIRMED",
"inferred": true
},
{
"componentName": {
"text": "1806"
},
"componentType": "postal_code_suffix",
"confirmationLevel": "CONFIRMED",
"inferred": true
}
未确认意外的地址组成部分
此场景说明了在组件未确认时进行检查的重要性。如果地址组成部分不符合预期,Address Validation API 会将其从输出中移除。在这种情况下,您可以接受该地址,也可以与客户重新确认,具体取决于您的风险级别和置信度。
例如,地址可能来自某个地区,该地区的客户经常输入被邮政机构忽略的无害信息,在这种情况下,您会接受该地址。不过,在某些情况下,未确认的组件可能不是客户想要的。
| 已输入地址 | 区域 |
|---|---|
| 1 Rue Grenache, la caritat 2, 34630 Saint-Thibéry | 法国 |
未确认意外地址组成部分的判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE",
"unconfirmedComponents": true
}
除了包含未确认组成部分的判定结果之外,Address Validation API 还会返回以下格式化地址:
"formattedAddress": "1 Rue Grenache, 34630 Saint-Thibéry, France",
对未确认的组成部分进行扫描后发现,API 从返回的地址中移除了 la caritat 2:
{
"componentName": {
"text": "la caritat 2",
"languageCode": "fr"
},
"componentType": "sublocality_level_1",
"confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
"unexpected": true
}
已确认的意外地址组成部分
此示例说明了在提供的地址中包含英国郡县的做法,这是一种常见做法。不过,英国邮政机构并未对此做出要求,因此基本上可以忽略。请参阅 postoffice.co.uk 和如何填写英国和国际邮件的地址。
因此,当客户在英国地址中提供县时,该服务会将其评估为意外输入。
| 已输入地址 | 区域 |
|---|---|
| 33 Dunalley St, Cheltenham, Gloucestershire, GL50 4AP | 英国 |
针对已确认的意外地址组成部分的判定
{
"inputGranularity": "PREMISE",
"validationGranularity": "PREMISE",
"geocodeGranularity": "PREMISE"
}
在这里,address_complete 的计算结果为 false,并且对地址组件的分析显示了一个意外标志。
{
"componentName": {
"text": "Gloucestershire",
"languageCode": "en"
},
"componentType": "administrative_area_level_2",
"confirmationLevel": "CONFIRMED",
"unexpected": true
}
虽然 Gloucestershire 是所输入地址的正确郡县,但地址本身的格式不正确。请注意,Address Validation API 还会评估信息格式是否正确。