2009-05-18 7 views
6

Etwas verwandt mit this question, aber in Ermangelung irgendeiner Antwort über QuickBooks speziell, weiß jemand von einem Adressenparser für Java? Etwas, das unstrukturierte Adressinformationen aufnehmen und die Adresszeile 1, 2 und die Postleitzahl und das Land des Bundesstaates auslesen kann?Java Postanschrift Parser

Antwort

8

Ich weiß, dass der Google Maps-Webdienst ist groß dabei tun. Also, wenn Sie das verwenden möchten, können Sie eine Menge Aufwand sparen.

Das eigentliche Problem hier ist, dass Sie eine weltweite Datenbank von Stadt/Land/Provinz-Namen benötigen, um UNSTRUCTURED-Adressen effektiv analysieren zu können.

Hier ist, wie ich eine URL zur Verwendung durch die Google Maps API in C# erstellen:

string url = "http://maps.google.com/maps/geo?key=" + HttpUtility.UrlEncode(this.apiKey) + "&sensor=false&output=xml&oe=utf8&q=" + HttpUtility.UrlEncode(location); 
+9

Vorsicht mit diesem. Das Google TOS verbietet automatisierte Abfragen. –

4

könnte diesen Stack-Überlauf Frage lesen möchten: "Parse usable Street Address, City, State, Zip from a string". Kein tatsächlicher Java-Code, um den Job zu erledigen (nur ein paar VB), aber es gibt einige Diskussionen über das Problem und weitere Informationen über die Alternative, die John Gietzen erwähnt, die Verwendung eines Web-Service, um es für Sie zu interpretieren.

1

Siehe www.address-parser.com, sie bieten einen Webdienst zum Parsen internationaler Adressen.

+0

Toller Fund, danke! Ich wünschte, sie hätten eine Java-API angeboten (aus praktischen Gründen würde ein Web-Service in diesem Szenario nicht gut funktionieren). – Yishai

+1

Für ein kommerzielles Produkt, werfen Sie einen Blick auf http://www.melissadata.com. Sie bieten eine Java API, die ich nicht getestet habe. Es ist JNI ein Wrapper rund um ihr C-basiertes Produkt. – Dave

2

Das Mural-Projekt hat einen Adressparser: https://mural.dev.java.net/. Ich habe nicht herausgefunden, wie man es von der größeren Mural-Engine abzieht, aber es funktioniert aufgrund einiger sehr begrenzter Tests.

5

Der SourceForge JGeocoder verfügt über einen Adressenparser, den Sie möglicherweise nützlich finden. Siehe http://jgeocoder.sourceforge.net/parser.html.

+0

Genau das, was ich gesucht habe. Beachten Sie, dass es nicht super robust ist - Ich habe den Code nur eine Adressfolge (keine Stadt) übergeben und bekam eine Nullzeiger-Ausnahme. Trotzdem ist es kostenlos und frei lizenziert. – mooreds