2008-09-23 11 views

Antwort

9

Wenn Sie nur US-Informationen benötigen, bietet der US-Postdienst eine Reihe von Webdiensten, die WebTools für genau dieses Ding aufrufen. https://www.usps.com/business/web-tools-apis/welcome.htm. Sie müssen sich registrieren, um sie benutzen zu können, aber sobald Sie registriert sind, sind sie wirklich einfach zu benutzen. Sie senden einfach eine XML-Anfrage über HTTP und der Server sendet eine XML-Antwort zurück und Sie müssen es nur entpacken.

Musterbestellung:

http://SERVERNAME/ShippingAPITest.dll?API=Verify&XML=<AddressValidateRequest%20USERID="xxxxxxx"><Address ID="0"><Address1></Address1><Address2>6406 Ivy Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest> 

Beispielantwort:

<?xml version="1.0"?> 
<AddressValidateResponse> 
    <Address ID="0"> 
     <Address2>6406 IVY LN</Address2> 
     <City>GREENBELT</City> 
     <State>MD</State> 
     <Zip5>20770</Zip5> 
     <Zip4>1441</Zip4> 
    </Address> 
</AddressValidateResponse> 

Hier ist ein Link auf die technische Dokumentation: https://www.usps.com/business/web-tools-apis/documentation-updates.htm

+0

Dieser Link ist nicht mehr verfügbar, zeigt Datei oder Seite angefordert nicht gefunden –

1

Eine gute Quelle für geografische Daten, einschließlich Lookups und Zuordnungsdaten für die USA ist TIGER Data set des US Census Bureau. Sie verfolgen keine Postleitzahldaten mehr aktiv, aber sie haben noch eine 1999 vintage file.

Für Länder ist die ISO-Ländercodeliste öffentlich verfügbar.

Mir sind Ressourcen für Informationen außerhalb der USA nicht bekannt.

14

http://www.geonames.org/

Das ist die beste, die ich gefunden habe. Sie lassen Sie den Web-Service selbst herunterladen und hosten, was auch nett ist.

2

Ein Dienst, der gut mit .Net funktioniert (weil es WSDL nutzt) ist http://www.webservicex.net. Sie haben einen Service für US-Postleitzahlen verfügbar unter http://www.webservicex.net/uszip.asmx. Sie können es einfach als Service hinzufügen, und Visual Studio kümmert sich um den Rest. Die Antwort kommt als XML-Antwort, also müssen Sie sie analysieren, aber Sie können etwas Einfaches wie USZIP.GetInfoByZIP(ZIP).SelectSingleNode("//STATE").InnerText verwenden.

Für meine Anwendung habe ich dann einen In-Memory-Cache der Daten unter Verwendung von XML in folgenden Richtungen erstellt: http://www.15seconds.com/issue/010410.htm. Ich habe XML anstelle von HashTable oder Dictionary(TKey, TValue) verwendet, weil ich in der Lage sein wollte, es zu einem String zu serialisieren, so dass ich die 'Datenbank' als Benutzereinstellung speichern konnte.

Verwandte Themen