我正在尝试将邮政编码转换为大致位于该邮政编码中心的地址

时间:2014-04-01 00:19:18

标签: street-address

我有一个用户提供的地址数据库。在某些情况下,用户只输入了一段时间,我们认为足以满足我们目的的邮政编码。现在我们知道邮政编码没有删除它,我们需要一个实际的地址。

因此,我们希望将邮政编码转换为足够接近该位置的地址,然后让用户知道我们做了什么,以便他们可以进入并根据需要更改这些地址。

有没有人知道任何可以提供我正在寻找的数据的东西?

2 个答案:

答案 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"
    }
  ]
}