2011-10-26 46 views
2

我正在研究使用CASS - 認證地址驗證服務,以在輸入時更正用戶提供的街道地址。 (具體來說,我正在研究SmartyStreets的LiveAddress。)但是,USPS規定一個正確的地址必須全部大寫,所以CASS服務幾乎統一地返回地址。然而,在向該地址的客戶郵寄時,最好使用更人性化的傳統套管。地址大寫

問題當然是如何做到這一點。我知道沒有這樣一個完美的解決方案,它不涉及完整的全國範圍的正確資本化的街道和城市名稱數據庫。但是,一套可以通過的啓發式方法可能已經足夠好了,因爲我們可能會將更正後的地址踢回給用戶,最終將其留給他們。

的問題的短名單,我能想出的思想幾分鐘後:

  • SW FIRST ST應該是SW First St,不Sw First St
  • MCDOUGLE ST應該是McDougle St而不是Mcdougle St
  • MACDOUGLE ST應該可能是Macdougle St而不是MacDougle St,因爲Macoroni Rd通常不應該是MacOroni Rd
  • 1ST ST應該是1st St而不是1St St
  • 不知道街道名稱是否以姓氏爲基礎,我們可能不能安全地將VAN轉換爲van,但VON可能會變成von

是否有任何現有的庫可以至少讓我開始?地址是複雜而反覆無常的事情,如果我不需要,我寧願不在家釀造整個東西。我正在使用C#,但我願意從另一種語言移植代碼。

除此之外,有沒有人有像樣的街道和/或城市名稱的共同大寫例外?

回答

2

很高興看到您使用LiveAddress服務來方便地址驗證和標準化。有一件事你可能想知道,這將有助於你在將套管規則應用到標準化地址的過程中:

我們最近引入了一個新的REST+JSON端點,該端點返回地址的標準化形式以及地址的各個組成部分。因此,將套管規則應用於返回獨立於街道後綴和前/後方向的「street_name」和「city_name」值非常簡單。

歡迎聯繫SmartyStreets支持,以獲取有關此問題的其他幫助,以及關於Stack Overflow(我們不斷監視)的問題。我應該也提到我是SmartyStreets的創始人。最後,我們正在努力能夠返回適當的地址,但我還沒有任何形式的發佈時間框架。

+0

這肯定會對很多複雜的情況有所幫助。謝謝! – WCWedin

+0

@JonathanOliver,你碰巧有這個圖書館的更新鏈接? – Nelu

1

不是圖書館,但您可能可以根據您的要求用Google Maps API解決問題。

+0

您是否建議我首先使用驗證API驗證地址,然後將驗證的地址傳遞給Google進行地理定位,以便他們可以更正我的大小寫?有點笨手笨腳,但很聰明。我認爲這還需要我顯示位置圖的地圖以保留在Google Maps API ToS中,但這不是不可能的。 – WCWedin