2013-02-22 125 views
5

我有5位數的郵政編碼,這些郵政編碼從Google Maps Api中檢索。從5位數的郵政編碼,編程,api獲取9位數的郵政編碼

我的兩難處境是我必須連接到一個遠程數據庫,該數據庫也包含地址。如果地址不存在於該數據庫中,則必須寫入該地址,如果存在,則除了存儲數據庫分配給該地址的ID之外,我什麼也不做。問題出現了,因爲api檢查這個數據庫不需要通配符,該數據庫中的地址有9位數的郵政編碼(5 + 4),並且不會返回地址的其餘部分與我的地址與5位郵政編碼相匹配。

遠程系統會告訴我,地址不存在與我發送的地址。

因此,爲了防止將重複地址寫入數據庫,我需要在發送郵件之前找到9位數的郵政編碼版本。

這將如何完成?是否有一個公式來確定5位數字地址的最後4位數字是什麼? USPS是否有API?人口普查有一張巨大的桌子嗎?

Insight讚賞

+0

呀,USCB有一個「巨人表」,但它在shape文件的形式,由城市打破。我看過他們,並用Python腳本來使用它們。 (有趣的男孩!)實際上,USCB並沒有使用郵政編碼來處理他們的數據,但是由於大衆的需求,已經創建了「ZCTA」(郵政編碼製表區),試圖將他們的人口普查區塊鏈接到郵政編碼。無論如何,這是瑣事,可能不是你要找的。 – Matt 2013-02-22 22:06:21

回答

5

你只能使用USPS API的信息,如果您使用的是美國郵政發出的郵件...

但是你可以檢查出SmartyStreets(我曾經在那裏工作)或其他CASS-認證供應商。他們獲得地址驗證許可,並且您還可以執行城市狀態和郵政編碼查找,而不需要地址(取決於您選擇的人員)。

我想你會發現它們比默認的USPS網絡服務更容易和更全面。

下面是一些示例代碼...你挑:https://github.com/smartystreets/LiveAddressSamples

2

美國郵政服務有a number of APIs。他們的「地址信息的API」包括:

地址標準化

消除尋址錯誤,並幫助確保準確及時的交貨。此工具可更正街道地址中的錯誤,包括縮寫和缺少的信息。它還提供ZIP +4®代碼。

郵政編碼™查找

查找郵政編碼匹配郵政編碼或ZIP + 4碼在任何給定的地址,城市,州美國

城市/州查找

使用獲取準確的城市和州信息。

Address Information APIs require permission to use

+1

的確如此,但只有通過USPS進行郵寄時才允許這樣做。請參閱他們的服務條款。 – Matt 2013-02-22 22:04:19