我有一个用户提供的地址数据库。在某些情况下,用户只输入了一段时间,我们认为足以满足我们目的的邮政编码。现在我们知道邮政编码没有删除它,我们需要一个实际的地址。
因此,我们希望将邮政编码转换为足够接近该位置的地址,然后让用户知道我们做了什么,以便他们可以进入并根据需要更改这些地址。
有没有人知道任何可以提供我正在寻找的数据的东西?
答案 0 :(得分:2)
我是SmartyStreets的开发人员(我对街道地址有很多经验)。
不幸的是,邮政编码无法转换为地址。
美国地址由一个11位数字(12位带有校验位)识别(几乎唯一),称为交付点条形码。邮政编码通常是此代码的前5位数字。其余6位数字提供更精确的粒度来精确定位地址。请注意,这并不是根据地理位置确定地址,而只是逻辑上,根据USPS'地址分配系统。 (他们根据管理和交付最有意义的内容来分配邮政编码和地址。)如果没有其他数字,准确的插值是非常不可能的。
尝试从邮政编码中解析地址就像尝试将100px位图缩放为100,000px图像一样,具体取决于邮政编码。
除了技术不可行之外,我建议不要找一个地址,然后要求用户更正。从UX和DBA的角度来看,为什么不简单地要求您的用户填写正确的地址?如果你试图猜测地址,用户会感到困惑,数据库管理员可能会忘记哪些地址是假的,哪些地址是纠正的。换句话说,您的数据将由您自己承担。
您可能宁愿拥有不完整的数据,而且知道数据不正确并且不知道它。
即使用户没有填写他们的地址,您也可以通过更多合理确定性来假设邮政编码中的城市和州。 SmartyStreets有一个API。至少以这种方式,你有一个近似的坐标和城市/州,而不是完全错误的地址数据。正确猜测的几率是几万比一。
答案 1 :(得分:0)
您可以使用 https://thezipcodes.com/ 从帐户部分获取 API 密钥。点击获取请求。
https://thezipcodes.com/api/v1/search?zipCode=302010&countryCode={2digitCountryCode}&apiKey={apiKey}
{
"success": true,
"location": [
{
"country": "RU",
"countryCode2": "RU",
"countryCode3": "",
"state": "Орловская Область",
"stateCode2": "56",
"latitude": "53.0747",
"longitude": "36.2468",
"zipCode": "302019",
"city": "Орел 19"
},
{
"country": "India",
"countryCode2": "IN",
"countryCode3": "IND",
"state": "Rajasthan",
"stateCode2": "24",
"latitude": "26.7865",
"longitude": "75.5809",
"zipCode": "302019",
"city": "Shyam Nagar (Jaipur)",
"timeZone": "Indian Standard Time"
}
]
}